<div class="tc-control-panel">
<<tabs "[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]" "$:/core/ui/ControlPanel/Info">>
</div>
{
"tiddlers": {
"$:/Acknowledgements": {
"title": "$:/Acknowledgements",
"text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
},
"$:/core/copyright.txt": {
"title": "$:/core/copyright.txt",
"type": "text/plain",
"text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2018, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
},
"$:/core/icon": {
"title": "$:/core/icon",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
},
"$:/core/images/advanced-search-button": {
"title": "$:/core/images/advanced-search-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-advanced-search-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M74.5651535,87.9848361 C66.9581537,93.0488876 57.8237115,96 48,96 C21.490332,96 0,74.509668 0,48 C0,21.490332 21.490332,0 48,0 C74.509668,0 96,21.490332 96,48 C96,57.8541369 93.0305793,67.0147285 87.9377231,74.6357895 L122.284919,108.982985 C125.978897,112.676963 125.973757,118.65366 122.284271,122.343146 C118.593975,126.033442 112.613238,126.032921 108.92411,122.343793 L74.5651535,87.9848361 Z M48,80 C65.673112,80 80,65.673112 80,48 C80,30.326888 65.673112,16 48,16 C30.326888,16 16,30.326888 16,48 C16,65.673112 30.326888,80 48,80 Z\"></path>\n <circle cx=\"48\" cy=\"48\" r=\"8\"></circle>\n <circle cx=\"28\" cy=\"48\" r=\"8\"></circle>\n <circle cx=\"68\" cy=\"48\" r=\"8\"></circle>\n </g>\n</svg>"
},
"$:/core/images/auto-height": {
"title": "$:/core/images/auto-height",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-auto-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path d=\"M67.9867828,114.356363 L67.9579626,99.8785426 C67.9550688,98.4248183 67.1636987,97.087107 65.8909901,96.3845863 L49.9251455,87.5716209 L47.992126,95.0735397 L79.8995411,95.0735397 C84.1215894,95.0735397 85.4638131,89.3810359 81.686497,87.4948823 L49.7971476,71.5713518 L48.0101917,79.1500092 L79.992126,79.1500092 C84.2093753,79.1500092 85.5558421,73.4676733 81.7869993,71.5753162 L49.805065,55.517008 L48.0101916,63.0917009 L79.9921259,63.0917015 C84.2035118,63.0917016 85.5551434,57.4217887 81.7966702,55.5218807 L65.7625147,47.4166161 L67.9579705,50.9864368 L67.9579705,35.6148245 L77.1715737,44.8284272 C78.7336709,46.3905243 81.2663308,46.3905243 82.8284279,44.8284271 C84.390525,43.2663299 84.390525,40.7336699 82.8284278,39.1715728 L66.8284271,23.1715728 C65.2663299,21.6094757 62.73367,21.6094757 61.1715729,23.1715729 L45.1715729,39.1715729 C43.6094757,40.73367 43.6094757,43.26633 45.1715729,44.8284271 C46.73367,46.3905243 49.26633,46.3905243 50.8284271,44.8284271 L59.9579705,35.6988837 L59.9579705,50.9864368 C59.9579705,52.495201 60.806922,53.8755997 62.1534263,54.5562576 L78.1875818,62.6615223 L79.9921261,55.0917015 L48.0101917,55.0917009 C43.7929424,55.0917008 42.4464755,60.7740368 46.2153183,62.6663939 L78.1972526,78.7247021 L79.992126,71.1500092 L48.0101917,71.1500092 C43.7881433,71.1500092 42.4459197,76.842513 46.2232358,78.7286665 L78.1125852,94.6521971 L79.8995411,87.0735397 L47.992126,87.0735397 C43.8588276,87.0735397 42.4404876,92.5780219 46.0591064,94.5754586 L62.024951,103.388424 L59.9579785,99.8944677 L59.9867142,114.32986 L50.8284271,105.171573 C49.26633,103.609476 46.73367,103.609476 45.1715729,105.171573 C43.6094757,106.73367 43.6094757,109.26633 45.1715729,110.828427 L61.1715729,126.828427 C62.73367,128.390524 65.2663299,128.390524 66.8284271,126.828427 L82.8284278,110.828427 C84.390525,109.26633 84.390525,106.73367 82.8284279,105.171573 C81.2663308,103.609476 78.7336709,103.609476 77.1715737,105.171573 L67.9867828,114.356363 L67.9867828,114.356363 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n</svg>"
},
"$:/core/images/blank": {
"title": "$:/core/images/blank",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\"></svg>"
},
"$:/core/images/bold": {
"title": "$:/core/images/bold",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-bold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M41.1456583,51.8095238 L41.1456583,21.8711485 L67.4985994,21.8711485 C70.0084159,21.8711485 72.4285598,22.0802967 74.7591036,22.4985994 C77.0896475,22.9169022 79.1512515,23.6638602 80.9439776,24.7394958 C82.7367036,25.8151314 84.170863,27.3090474 85.2464986,29.2212885 C86.3221342,31.1335296 86.859944,33.5835518 86.859944,36.5714286 C86.859944,41.9496067 85.2465147,45.8337882 82.0196078,48.2240896 C78.792701,50.614391 74.6694929,51.8095238 69.6498599,51.8095238 L41.1456583,51.8095238 Z M13,0 L13,128 L75.0280112,128 C80.7647346,128 86.3519803,127.28292 91.789916,125.848739 C97.2278517,124.414559 102.068139,122.203563 106.310924,119.215686 C110.553709,116.22781 113.929959,112.373506 116.439776,107.652661 C118.949592,102.931816 120.204482,97.3445701 120.204482,90.8907563 C120.204482,82.8832466 118.262391,76.0411115 114.378151,70.3641457 C110.493911,64.6871798 104.607883,60.7133634 96.719888,58.442577 C102.456611,55.6937304 106.788968,52.1680887 109.717087,47.8655462 C112.645206,43.5630037 114.109244,38.1849062 114.109244,31.7310924 C114.109244,25.7553389 113.123259,20.7357813 111.151261,16.6722689 C109.179262,12.6087565 106.400578,9.35201972 102.815126,6.90196078 C99.2296739,4.45190185 94.927196,2.68908101 89.907563,1.61344538 C84.8879301,0.537809748 79.3305627,0 73.2352941,0 L13,0 Z M41.1456583,106.128852 L41.1456583,70.9915966 L71.8011204,70.9915966 C77.896389,70.9915966 82.7964334,72.3958776 86.5014006,75.2044818 C90.2063677,78.0130859 92.0588235,82.7039821 92.0588235,89.2773109 C92.0588235,92.6237329 91.4911355,95.3725383 90.3557423,97.5238095 C89.2203491,99.6750808 87.6965548,101.378145 85.7843137,102.633053 C83.8720726,103.887961 81.661077,104.784311 79.1512605,105.322129 C76.641444,105.859947 74.0121519,106.128852 71.2633053,106.128852 L41.1456583,106.128852 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/cancel-button": {
"title": "$:/core/images/cancel-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n\t<g fill-rule=\"evenodd\">\n\t <path d=\"M64,76.3137085 L47.0294734,93.2842351 C43.9038742,96.4098343 38.8399231,96.4084656 35.7157288,93.2842712 C32.5978915,90.166434 32.5915506,85.0947409 35.7157649,81.9705266 L52.6862915,65 L35.7157649,48.0294734 C32.5901657,44.9038742 32.5915344,39.8399231 35.7157288,36.7157288 C38.833566,33.5978915 43.9052591,33.5915506 47.0294734,36.7157649 L64,53.6862915 L80.9705266,36.7157649 C84.0961258,33.5901657 89.1600769,33.5915344 92.2842712,36.7157288 C95.4021085,39.833566 95.4084494,44.9052591 92.2842351,48.0294734 L75.3137085,65 L92.2842351,81.9705266 C95.4098343,85.0961258 95.4084656,90.1600769 92.2842712,93.2842712 C89.166434,96.4021085 84.0947409,96.4084494 80.9705266,93.2842351 L64,76.3137085 Z M64,129 C99.346224,129 128,100.346224 128,65 C128,29.653776 99.346224,1 64,1 C28.653776,1 1.13686838e-13,29.653776 1.13686838e-13,65 C1.13686838e-13,100.346224 28.653776,129 64,129 Z M64,113 C90.509668,113 112,91.509668 112,65 C112,38.490332 90.509668,17 64,17 C37.490332,17 16,38.490332 16,65 C16,91.509668 37.490332,113 64,113 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/chevron-down": {
"title": "$:/core/images/chevron-down",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-chevron-down tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 40.500000) rotate(-270.000000) translate(-64.000000, -40.500000) translate(-22.500000, -26.500000)\">\n <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>"
},
"$:/core/images/chevron-left": {
"title": "$:/core/images/chevron-left",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-chevron-left tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" version=\"1.1\">\n <g fill-rule=\"evenodd\" transform=\"translate(92.500000, 64.000000) rotate(-180.000000) translate(-92.500000, -64.000000) translate(6.000000, -3.000000)\">\n <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n </g>\n</svg>"
},
"$:/core/images/chevron-right": {
"title": "$:/core/images/chevron-right",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-chevron-right tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\" transform=\"translate(-48.000000, -3.000000)\">\n <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n </g>\n</svg>"
},
"$:/core/images/chevron-up": {
"title": "$:/core/images/chevron-up",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-chevron-up tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 89.500000) rotate(-90.000000) translate(-64.000000, -89.500000) translate(-22.500000, 22.500000)\">\n <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>"
},
"$:/core/images/clone-button": {
"title": "$:/core/images/clone-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-clone-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M32.2650915,96 L32.2650915,120.002359 C32.2650915,124.419334 35.8432884,128 40.2627323,128 L120.002359,128 C124.419334,128 128,124.421803 128,120.002359 L128,40.2627323 C128,35.8457573 124.421803,32.2650915 120.002359,32.2650915 L96,32.2650915 L96,48 L108.858899,48 C110.519357,48 111.853018,49.3405131 111.853018,50.9941198 L111.853018,108.858899 C111.853018,110.519357 110.512505,111.853018 108.858899,111.853018 L50.9941198,111.853018 C49.333661,111.853018 48,110.512505 48,108.858899 L48,96 L32.2650915,96 Z\"></path>\n <path d=\"M40,56 L32.0070969,56 C27.5881712,56 24,52.418278 24,48 C24,43.5907123 27.5848994,40 32.0070969,40 L40,40 L40,32.0070969 C40,27.5881712 43.581722,24 48,24 C52.4092877,24 56,27.5848994 56,32.0070969 L56,40 L63.9929031,40 C68.4118288,40 72,43.581722 72,48 C72,52.4092877 68.4151006,56 63.9929031,56 L56,56 L56,63.9929031 C56,68.4118288 52.418278,72 48,72 C43.5907123,72 40,68.4151006 40,63.9929031 L40,56 Z M7.9992458,0 C3.58138434,0 0,3.5881049 0,7.9992458 L0,88.0007542 C0,92.4186157 3.5881049,96 7.9992458,96 L88.0007542,96 C92.4186157,96 96,92.4118951 96,88.0007542 L96,7.9992458 C96,3.58138434 92.4118951,0 88.0007542,0 L7.9992458,0 Z M19.0010118,16 C17.3435988,16 16,17.336731 16,19.0010118 L16,76.9989882 C16,78.6564012 17.336731,80 19.0010118,80 L76.9989882,80 C78.6564012,80 80,78.663269 80,76.9989882 L80,19.0010118 C80,17.3435988 78.663269,16 76.9989882,16 L19.0010118,16 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/close-all-button": {
"title": "$:/core/images/close-all-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-close-all-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\" transform=\"translate(-23.000000, -23.000000)\">\n <path d=\"M43,131 L22.9976794,131 C18.5827987,131 15,127.418278 15,123 C15,118.590712 18.5806831,115 22.9976794,115 L43,115 L43,94.9976794 C43,90.5827987 46.581722,87 51,87 C55.4092877,87 59,90.5806831 59,94.9976794 L59,115 L79.0023206,115 C83.4172013,115 87,118.581722 87,123 C87,127.409288 83.4193169,131 79.0023206,131 L59,131 L59,151.002321 C59,155.417201 55.418278,159 51,159 C46.5907123,159 43,155.419317 43,151.002321 L43,131 Z\" transform=\"translate(51.000000, 123.000000) rotate(-45.000000) translate(-51.000000, -123.000000) \"></path>\n <path d=\"M43,59 L22.9976794,59 C18.5827987,59 15,55.418278 15,51 C15,46.5907123 18.5806831,43 22.9976794,43 L43,43 L43,22.9976794 C43,18.5827987 46.581722,15 51,15 C55.4092877,15 59,18.5806831 59,22.9976794 L59,43 L79.0023206,43 C83.4172013,43 87,46.581722 87,51 C87,55.4092877 83.4193169,59 79.0023206,59 L59,59 L59,79.0023206 C59,83.4172013 55.418278,87 51,87 C46.5907123,87 43,83.4193169 43,79.0023206 L43,59 Z\" transform=\"translate(51.000000, 51.000000) rotate(-45.000000) translate(-51.000000, -51.000000) \"></path>\n <path d=\"M115,59 L94.9976794,59 C90.5827987,59 87,55.418278 87,51 C87,46.5907123 90.5806831,43 94.9976794,43 L115,43 L115,22.9976794 C115,18.5827987 118.581722,15 123,15 C127.409288,15 131,18.5806831 131,22.9976794 L131,43 L151.002321,43 C155.417201,43 159,46.581722 159,51 C159,55.4092877 155.419317,59 151.002321,59 L131,59 L131,79.0023206 C131,83.4172013 127.418278,87 123,87 C118.590712,87 115,83.4193169 115,79.0023206 L115,59 Z\" transform=\"translate(123.000000, 51.000000) rotate(-45.000000) translate(-123.000000, -51.000000) \"></path>\n <path d=\"M115,131 L94.9976794,131 C90.5827987,131 87,127.418278 87,123 C87,118.590712 90.5806831,115 94.9976794,115 L115,115 L115,94.9976794 C115,90.5827987 118.581722,87 123,87 C127.409288,87 131,90.5806831 131,94.9976794 L131,115 L151.002321,115 C155.417201,115 159,118.581722 159,123 C159,127.409288 155.419317,131 151.002321,131 L131,131 L131,151.002321 C131,155.417201 127.418278,159 123,159 C118.590712,159 115,155.419317 115,151.002321 L115,131 Z\" transform=\"translate(123.000000, 123.000000) rotate(-45.000000) translate(-123.000000, -123.000000) \"></path>\n </g>\n</svg>"
},
"$:/core/images/close-button": {
"title": "$:/core/images/close-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M65.0864256,75.4091629 L14.9727349,125.522854 C11.8515951,128.643993 6.78104858,128.64922 3.65685425,125.525026 C0.539017023,122.407189 0.5336324,117.334539 3.65902635,114.209145 L53.7727171,64.0954544 L3.65902635,13.9817637 C0.537886594,10.8606239 0.532659916,5.79007744 3.65685425,2.6658831 C6.77469148,-0.451954124 11.8473409,-0.457338747 14.9727349,2.66805521 L65.0864256,52.7817459 L115.200116,2.66805521 C118.321256,-0.453084553 123.391803,-0.458311231 126.515997,2.6658831 C129.633834,5.78372033 129.639219,10.8563698 126.513825,13.9817637 L76.4001341,64.0954544 L126.513825,114.209145 C129.634965,117.330285 129.640191,122.400831 126.515997,125.525026 C123.39816,128.642863 118.32551,128.648248 115.200116,125.522854 L65.0864256,75.4091629 L65.0864256,75.4091629 Z\"></path>\n </g>\n</svg>\n"
},
"$:/core/images/close-others-button": {
"title": "$:/core/images/close-others-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-close-others-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z M64,96 C81.673112,96 96,81.673112 96,64 C96,46.326888 81.673112,32 64,32 C46.326888,32 32,46.326888 32,64 C32,81.673112 46.326888,96 64,96 Z M64,80 C72.836556,80 80,72.836556 80,64 C80,55.163444 72.836556,48 64,48 C55.163444,48 48,55.163444 48,64 C48,72.836556 55.163444,80 64,80 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/copy-clipboard": {
"title": "$:/core/images/copy-clipboard",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-copy-clipboard tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\">\n\t\t<rect x=\"40\" y=\"40\" width=\"33\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"82\" width=\"17\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"54\" width=\"17\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"96\" width=\"33\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"68\" width=\"12\" height=\"8\" rx=\"4\"></rect>\n\t\t<path d=\"M40,16 L23.9992458,16 C19.5813843,16 16,19.5907123 16,24 C16,24.0016363 16.0000005,24.0032725 16.0000015,24.0049086 C16.0000005,24.0065441 16,24.0081803 16,24.0098166 L16,119.990183 C16,119.99182 16.0000005,119.993456 16.0000015,119.995092 C16.0000005,119.996727 16,119.998364 16,120 C16,124.409288 19.5813843,128 23.9992458,128 L104.000754,128 C106.205061,128 108.203844,127.105595 109.652065,125.659342 C111.102424,124.21251 112,122.214511 112,120.007595 L112,103.992405 C112,99.5776607 108.418278,96 104,96 C99.5907123,96 96,99.5783218 96,103.992405 L96,112 L32,112 L32,32 L96,32 L96,40.0075946 C96,44.4223393 99.581722,48 104,48 C108.409288,48 112,44.4216782 112,40.0075946 L112,23.9924054 C112,21.7851587 111.104671,19.7871591 109.657101,18.3409203 C108.203844,16.8944047 106.205061,16 104.000754,16 L88,16 C88,11.5907123 84.4151006,8 79.9929031,8 L48.0070969,8 C43.5881712,8 40,11.581722 40,16 Z M44,14.9958262 C44,12.7889923 45.7964248,11 48.0000255,11 L79.9999745,11 C82.2091276,11 84,12.7965212 84,14.9958262 L84,19.0041738 C84,21.2110077 82.2035752,23 79.9999745,23 L48.0000255,23 C45.7908724,23 44,21.2034788 44,19.0041738 L44,14.9958262 Z\"></path>\n\t\t<rect x=\"62\" y=\"64\" width=\"66\" height=\"16\" rx=\"8\"></rect>\n\t\t<path d=\"M60.6568542,85.6568542 L76.6568542,69.6568543 L65.3431458,69.6568542 L81.3431458,85.6568542 C84.4673401,88.7810486 89.5326599,88.7810486 92.6568542,85.6568542 C95.7810486,82.5326599 95.7810486,77.4673401 92.6568542,74.3431458 L76.6568542,58.3431458 C73.5326599,55.2189514 68.4673401,55.2189514 65.3431458,58.3431457 L49.3431458,74.3431457 C46.2189514,77.4673401 46.2189514,82.5326599 49.3431457,85.6568542 C52.4673401,88.7810486 57.5326599,88.7810486 60.6568542,85.6568542 L60.6568542,85.6568542 Z\" transform=\"translate(71.000000, 72.000000) rotate(-90.000000) translate(-71.000000, -72.000000) \"></path>\n\t</g>\n</svg>"
},
"$:/core/images/delete-button": {
"title": "$:/core/images/delete-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\" transform=\"translate(12.000000, 0.000000)\">\n <rect x=\"0\" y=\"11\" width=\"105\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"28\" y=\"0\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"8\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n <rect x=\"8\" y=\"112\" width=\"88\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"80\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n <rect x=\"56\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n <rect x=\"32\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n </g>\n</svg>"
},
"$:/core/images/done-button": {
"title": "$:/core/images/done-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M3.52445141,76.8322939 C2.07397484,75.3828178 1.17514421,73.3795385 1.17514421,71.1666288 L1.17514421,23.1836596 C1.17514421,18.7531992 4.75686621,15.1751442 9.17514421,15.1751442 C13.5844319,15.1751442 17.1751442,18.7606787 17.1751442,23.1836596 L17.1751442,63.1751442 L119.173716,63.1751442 C123.590457,63.1751442 127.175144,66.7568662 127.175144,71.1751442 C127.175144,75.5844319 123.592783,79.1751442 119.173716,79.1751442 L9.17657227,79.1751442 C6.96796403,79.1751442 4.9674142,78.279521 3.51911285,76.8315312 Z\" id=\"Rectangle-285\" transform=\"translate(64.175144, 47.175144) rotate(-45.000000) translate(-64.175144, -47.175144) \"></path>\n </g>\n</svg>"
},
"$:/core/images/down-arrow": {
"title": "$:/core/images/down-arrow",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <path d=\"M109.35638,81.3533152 C107.923899,82.7869182 105.94502,83.6751442 103.759224,83.6751442 L24.5910645,83.6751442 C20.225873,83.6751442 16.6751442,80.1307318 16.6751442,75.7584775 C16.6751442,71.3951199 20.2192225,67.8418109 24.5910645,67.8418109 L95.8418109,67.8418109 L95.8418109,-3.40893546 C95.8418109,-7.77412698 99.3862233,-11.3248558 103.758478,-11.3248558 C108.121835,-11.3248558 111.675144,-7.78077754 111.675144,-3.40893546 L111.675144,75.7592239 C111.675144,77.9416955 110.789142,79.9205745 109.356651,81.3538862 Z\" transform=\"translate(64.175144, 36.175144) rotate(45.000000) translate(-64.175144, -36.175144) \"></path>\n</svg>"
},
"$:/core/images/download-button": {
"title": "$:/core/images/download-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-download-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path class=\"tc-image-download-button-ring\" d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"/><path d=\"M34.3496823,66.4308767 L61.2415823,93.634668 C63.0411536,95.4551107 65.9588502,95.4551107 67.7584215,93.634668 L94.6503215,66.4308767 C96.4498928,64.610434 96.4498928,61.6588981 94.6503215,59.8384554 C93.7861334,58.9642445 92.6140473,58.4731195 91.3919019,58.4731195 L82.9324098,58.4731195 C80.3874318,58.4731195 78.3243078,56.3860674 78.3243078,53.8115729 L78.3243078,38.6615466 C78.3243078,36.0870521 76.2611837,34 73.7162058,34 L55.283798,34 C52.7388201,34 50.675696,36.0870521 50.675696,38.6615466 L50.675696,38.6615466 L50.675696,53.8115729 C50.675696,56.3860674 48.612572,58.4731195 46.0675941,58.4731195 L37.608102,58.4731195 C35.063124,58.4731195 33,60.5601716 33,63.134666 C33,64.3709859 33.4854943,65.5566658 34.3496823,66.4308767 L34.3496823,66.4308767 Z\"/></g></svg>"
},
"$:/core/images/edit-button": {
"title": "$:/core/images/edit-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M116.870058,45.3431458 L108.870058,45.3431458 L108.870058,45.3431458 L108.870058,61.3431458 L116.870058,61.3431458 L116.870058,45.3431458 Z M124.870058,45.3431458 L127.649881,45.3431458 C132.066101,45.3431458 135.656854,48.9248678 135.656854,53.3431458 C135.656854,57.7524334 132.07201,61.3431458 127.649881,61.3431458 L124.870058,61.3431458 L124.870058,45.3431458 Z M100.870058,45.3431458 L15.6638275,45.3431458 C15.5064377,45.3431458 15.3501085,45.3476943 15.1949638,45.3566664 L15.1949638,45.3566664 C15.0628002,45.3477039 14.928279,45.3431458 14.7913977,45.3431458 C6.68160973,45.3431458 -8.34314575,53.3431458 -8.34314575,53.3431458 C-8.34314575,53.3431458 6.85614548,61.3431458 14.7913977,61.3431458 C14.9266533,61.3431458 15.0596543,61.3384973 15.190398,61.3293588 C15.3470529,61.3385075 15.5049057,61.3431458 15.6638275,61.3431458 L100.870058,61.3431458 L100.870058,45.3431458 L100.870058,45.3431458 Z\" transform=\"translate(63.656854, 53.343146) rotate(-45.000000) translate(-63.656854, -53.343146) \"></path>\n <path d=\"M35.1714596,124.189544 C41.9594858,123.613403 49.068777,121.917633 58.85987,118.842282 C60.6854386,118.268877 62.4306907,117.705515 65.1957709,116.802278 C81.1962861,111.575575 87.0734839,109.994907 93.9414474,109.655721 C102.29855,109.242993 107.795169,111.785371 111.520478,118.355045 C112.610163,120.276732 115.051363,120.951203 116.97305,119.861518 C118.894737,118.771832 119.569207,116.330633 118.479522,114.408946 C113.146151,105.003414 104.734907,101.112919 93.5468356,101.66546 C85.6716631,102.054388 79.4899908,103.716944 62.7116783,109.197722 C59.9734132,110.092199 58.2519873,110.64787 56.4625698,111.20992 C37.002649,117.322218 25.6914684,118.282267 16.8654804,112.957098 C14.9739614,111.815848 12.5154166,112.424061 11.3741667,114.31558 C10.2329168,116.207099 10.84113,118.665644 12.7326489,119.806894 C19.0655164,123.627836 26.4866335,124.926678 35.1714596,124.189544 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/erase": {
"title": "$:/core/images/erase",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-erase tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M60.0870401,127.996166 L123.102318,64.980888 C129.636723,58.4464827 129.629513,47.8655877 123.098967,41.3350425 L99.4657866,17.7018617 C92.927448,11.1635231 82.3486358,11.1698163 75.8199411,17.698511 L4.89768189,88.6207702 C-1.63672343,95.1551755 -1.6295126,105.736071 4.90103262,112.266616 L20.6305829,127.996166 L60.0870401,127.996166 Z M25.1375576,120.682546 L10.812569,106.357558 C7.5455063,103.090495 7.54523836,97.793808 10.8048093,94.5342371 L46.2691086,59.0699377 L81.7308914,94.5317205 L55.5800654,120.682546 L25.1375576,120.682546 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/excise": {
"title": "$:/core/images/excise",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-excise tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M56,107.313709 L53.6568542,109.656854 C50.5326599,112.781049 45.4673401,112.781049 42.3431457,109.656854 C39.2189514,106.53266 39.2189514,101.46734 42.3431458,98.3431457 L58.3431458,82.3431457 C61.4673401,79.2189514 66.5326599,79.2189514 69.6568542,82.3431458 L85.6568542,98.3431458 C88.7810486,101.46734 88.7810486,106.53266 85.6568542,109.656854 C82.5326599,112.781049 77.4673401,112.781049 74.3431458,109.656854 L72,107.313708 L72,121.597798 C72,125.133636 68.418278,128 64,128 C59.581722,128 56,125.133636 56,121.597798 L56,107.313709 Z M0,40.0070969 C0,35.5848994 3.59071231,32 8,32 C12.418278,32 16,35.5881712 16,40.0070969 L16,71.9929031 C16,76.4151006 12.4092877,80 8,80 C3.581722,80 0,76.4118288 0,71.9929031 L0,40.0070969 Z M32,40.0070969 C32,35.5848994 35.5907123,32 40,32 C44.418278,32 48,35.5881712 48,40.0070969 L48,71.9929031 C48,76.4151006 44.4092877,80 40,80 C35.581722,80 32,76.4118288 32,71.9929031 L32,40.0070969 Z M80,40.0070969 C80,35.5848994 83.5907123,32 88,32 C92.418278,32 96,35.5881712 96,40.0070969 L96,71.9929031 C96,76.4151006 92.4092877,80 88,80 C83.581722,80 80,76.4118288 80,71.9929031 L80,40.0070969 Z M56,8.00709688 C56,3.58489938 59.5907123,0 64,0 C68.418278,0 72,3.58817117 72,8.00709688 L72,39.9929031 C72,44.4151006 68.4092877,48 64,48 C59.581722,48 56,44.4118288 56,39.9929031 L56,8.00709688 Z M112,40.0070969 C112,35.5848994 115.590712,32 120,32 C124.418278,32 128,35.5881712 128,40.0070969 L128,71.9929031 C128,76.4151006 124.409288,80 120,80 C115.581722,80 112,76.4118288 112,71.9929031 L112,40.0070969 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/export-button": {
"title": "$:/core/images/export-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-export-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8.00348646,127.999999 C8.00464867,128 8.00581094,128 8.00697327,128 L119.993027,128 C122.205254,128 124.207939,127.101378 125.657096,125.651198 L125.656838,125.65759 C127.104563,124.210109 128,122.21009 128,119.999949 L128,56.0000511 C128,51.5817449 124.409288,48 120,48 C115.581722,48 112,51.5797863 112,56.0000511 L112,112 L16,112 L16,56.0000511 C16,51.5817449 12.4092877,48 8,48 C3.581722,48 7.10542736e-15,51.5797863 7.10542736e-15,56.0000511 L7.10542736e-15,119.999949 C7.10542736e-15,124.418255 3.59071231,128 8,128 C8.00116233,128 8.0023246,128 8.00348681,127.999999 Z M56.6235633,27.3113724 L47.6580188,36.2769169 C44.5333664,39.4015692 39.4634864,39.4061295 36.339292,36.2819351 C33.2214548,33.1640979 33.2173444,28.0901742 36.3443103,24.9632084 L58.9616908,2.34582788 C60.5248533,0.782665335 62.5748436,0.000361191261 64.624516,2.38225238e-14 L64.6193616,0.00151809229 C66.6695374,0.000796251595 68.7211167,0.781508799 70.2854358,2.34582788 L92.9028163,24.9632084 C96.0274686,28.0878607 96.0320289,33.1577408 92.9078345,36.2819351 C89.7899973,39.3997724 84.7160736,39.4038827 81.5891078,36.2769169 L72.6235633,27.3113724 L72.6235633,88.5669606 C72.6235633,92.9781015 69.0418413,96.5662064 64.6235633,96.5662064 C60.2142756,96.5662064 56.6235633,92.984822 56.6235633,88.5669606 L56.6235633,27.3113724 L56.6235633,27.3113724 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/file": {
"title": "$:/core/images/file",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-file tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"nonzero\">\n <path d=\"M111.96811,30.5 L112,30.5 L112,119.999079 C112,124.417866 108.419113,128 104.000754,128 L23.9992458,128 C19.5813843,128 16,124.417687 16,119.999079 L16,8.00092105 C16,3.58213437 19.5808867,0 23.9992458,0 L81,0 L81,0.0201838424 C83.1589869,-0.071534047 85.3482153,0.707077645 86.9982489,2.35711116 L109.625176,24.9840387 C111.151676,26.510538 111.932942,28.4998414 111.96811,30.5 L111.96811,30.5 Z M81,8 L24,8 L24,120 L104,120 L104,30.5 L89.0003461,30.5 C84.5818769,30.5 81,26.9216269 81,22.4996539 L81,8 Z\"></path>\n <rect x=\"32\" y=\"36\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"52\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"68\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"84\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"100\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"20\" width=\"40\" height=\"8\" rx=\"4\"></rect>\n </g>\n</svg>"
},
"$:/core/images/fixed-height": {
"title": "$:/core/images/fixed-height",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-fixed-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M60,35.6568542 L50.8284271,44.8284271 C49.26633,46.3905243 46.73367,46.3905243 45.1715729,44.8284271 C43.6094757,43.26633 43.6094757,40.73367 45.1715729,39.1715729 L61.1715729,23.1715729 C62.73367,21.6094757 65.2663299,21.6094757 66.8284271,23.1715728 L82.8284278,39.1715728 C84.390525,40.7336699 84.390525,43.2663299 82.8284279,44.8284271 C81.2663308,46.3905243 78.7336709,46.3905243 77.1715737,44.8284272 L68,35.6568539 L68,93.3431461 L77.1715737,84.1715728 C78.7336709,82.6094757 81.2663308,82.6094757 82.8284279,84.1715729 C84.390525,85.7336701 84.390525,88.2663301 82.8284278,89.8284272 L66.8284271,105.828427 C65.2663299,107.390524 62.73367,107.390524 61.1715729,105.828427 L45.1715729,89.8284271 C43.6094757,88.26633 43.6094757,85.73367 45.1715729,84.1715729 C46.73367,82.6094757 49.26633,82.6094757 50.8284271,84.1715729 L60,93.3431458 L60,35.6568542 L60,35.6568542 Z M16,116 L112,116 C114.209139,116 116,114.209139 116,112 C116,109.790861 114.209139,108 112,108 L16,108 C13.790861,108 12,109.790861 12,112 C12,114.209139 13.790861,116 16,116 L16,116 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/fold-all-button": {
"title": "$:/core/images/fold-all-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-fold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M64.0292774,58.6235628 C61.9791013,58.6242848 59.9275217,57.8435723 58.3632024,56.279253 L35.7458219,33.6618725 C32.6211696,30.5372202 32.6166093,25.4673401 35.7408036,22.3431458 C38.8586409,19.2253085 43.9325646,19.2211982 47.0595304,22.348164 L64.0250749,39.3137085 L80.9906194,22.348164 C84.1152717,19.2235117 89.1851518,19.2189514 92.3093461,22.3431458 C95.4271834,25.460983 95.4312937,30.5349067 92.3043279,33.6618725 L69.6869474,56.279253 C68.1237851,57.8424153 66.0737951,58.6247195 64.0241231,58.6250809 Z\" transform=\"translate(64.024316, 39.313708) scale(1, -1) translate(-64.024316, -39.313708) \"></path>\n <path d=\"M64.0292774,123.621227 C61.9791013,123.621949 59.9275217,122.841236 58.3632024,121.276917 L35.7458219,98.6595365 C32.6211696,95.5348842 32.6166093,90.4650041 35.7408036,87.3408098 C38.8586409,84.2229725 43.9325646,84.2188622 47.0595304,87.345828 L64.0250749,104.311373 L80.9906194,87.345828 C84.1152717,84.2211757 89.1851518,84.2166154 92.3093461,87.3408098 C95.4271834,90.458647 95.4312937,95.5325707 92.3043279,98.6595365 L69.6869474,121.276917 C68.1237851,122.840079 66.0737951,123.622383 64.0241231,123.622745 Z\" transform=\"translate(64.024316, 104.311372) scale(1, -1) translate(-64.024316, -104.311372) \"></path>\n </g>\n</svg>"
},
"$:/core/images/fold-button": {
"title": "$:/core/images/fold-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-fold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M64.0292774,63.6235628 C61.9791013,63.6242848 59.9275217,62.8435723 58.3632024,61.279253 L35.7458219,38.6618725 C32.6211696,35.5372202 32.6166093,30.4673401 35.7408036,27.3431458 C38.8586409,24.2253085 43.9325646,24.2211982 47.0595304,27.348164 L64.0250749,44.3137085 L80.9906194,27.348164 C84.1152717,24.2235117 89.1851518,24.2189514 92.3093461,27.3431458 C95.4271834,30.460983 95.4312937,35.5349067 92.3043279,38.6618725 L69.6869474,61.279253 C68.1237851,62.8424153 66.0737951,63.6247195 64.0241231,63.6250809 Z\" transform=\"translate(64.024316, 44.313708) scale(1, -1) translate(-64.024316, -44.313708) \"></path>\n <path d=\"M64.0049614,105.998482 C61.9547853,105.999204 59.9032057,105.218491 58.3388864,103.654172 L35.7215059,81.0367916 C32.5968535,77.9121393 32.5922933,72.8422592 35.7164876,69.7180649 C38.8343248,66.6002276 43.9082485,66.5961173 47.0352144,69.7230831 L64.0007589,86.6886276 L80.9663034,69.7230831 C84.0909557,66.5984308 89.1608358,66.5938705 92.2850301,69.7180649 C95.4028673,72.8359021 95.4069777,77.9098258 92.2800119,81.0367916 L69.6626314,103.654172 C68.099469,105.217334 66.0494791,105.999639 63.999807,106 Z\" transform=\"translate(64.000000, 86.688628) scale(1, -1) translate(-64.000000, -86.688628) \"></path>\n </g>\n</svg>"
},
"$:/core/images/fold-others-button": {
"title": "$:/core/images/fold-others-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-fold-others tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"56.0314331\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M101.657101,104.948818 C100.207918,103.498614 98.2051847,102.599976 95.9929031,102.599976 L72,102.599976 L72,78.6070725 C72,76.3964271 71.1036108,74.3936927 69.6545293,72.9441002 L69.6571005,72.9488183 C68.2079177,71.4986143 66.2051847,70.5999756 63.9929031,70.5999756 L32.0070969,70.5999756 C27.5881712,70.5999756 24,74.1816976 24,78.5999756 C24,83.0092633 27.5848994,86.5999756 32.0070969,86.5999756 L56,86.5999756 L56,110.592879 C56,112.803524 56.8963895,114.806259 58.3454713,116.255852 L58.3429,116.251133 C59.7920828,117.701337 61.7948156,118.599976 64.0070969,118.599976 L88,118.599976 L88,142.592879 C88,147.011804 91.581722,150.599976 96,150.599976 C100.409288,150.599976 104,147.015076 104,142.592879 L104,110.607072 C104,108.396427 103.103611,106.393693 101.654529,104.9441 Z\" transform=\"translate(64.000000, 110.599976) rotate(-45.000000) translate(-64.000000, -110.599976) \"></path>\n <path d=\"M101.725643,11.7488671 C100.27646,10.2986632 98.2737272,9.40002441 96.0614456,9.40002441 L72.0685425,9.40002441 L72.0685425,-14.5928787 C72.0685425,-16.8035241 71.1721533,-18.8062584 69.7230718,-20.255851 L69.725643,-20.2511329 C68.2764602,-21.7013368 66.2737272,-22.5999756 64.0614456,-22.5999756 L32.0756394,-22.5999756 C27.6567137,-22.5999756 24.0685425,-19.0182536 24.0685425,-14.5999756 C24.0685425,-10.1906879 27.6534419,-6.59997559 32.0756394,-6.59997559 L56.0685425,-6.59997559 L56.0685425,17.3929275 C56.0685425,19.6035732 56.964932,21.6063078 58.4140138,23.0559004 L58.4114425,23.0511823 C59.8606253,24.5013859 61.8633581,25.4000244 64.0756394,25.4000244 L88.0685425,25.4000244 L88.0685425,49.3929275 C88.0685425,53.8118532 91.6502645,57.4000244 96.0685425,57.4000244 C100.47783,57.4000244 104.068542,53.815125 104.068542,49.3929275 L104.068542,17.4071213 C104.068542,15.1964759 103.172153,13.1937416 101.723072,11.744149 Z\" transform=\"translate(64.068542, 17.400024) scale(1, -1) rotate(-45.000000) translate(-64.068542, -17.400024) \"></path>\n </g>\n</svg>"
},
"$:/core/images/folder": {
"title": "$:/core/images/folder",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-folder tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M55.6943257,128.000004 L7.99859666,128.000004 C3.5810937,128.000004 0,124.413822 0,119.996384 L0,48.0036243 C0,43.5833471 3.58387508,40.0000044 7.99859666,40.0000044 L16,40.0000044 L16,31.9999914 C16,27.5817181 19.5783731,24 24.0003461,24 L55.9996539,24 C60.4181231,24 64,27.5800761 64,31.9999914 L64,40.0000044 L104.001403,40.0000044 C108.418906,40.0000044 112,43.5861868 112,48.0036243 L112,59.8298353 L104,59.7475921 L104,51.9994189 C104,49.7887607 102.207895,48.0000044 99.9972215,48.0000044 L56,48.0000044 L56,36.0000255 C56,33.7898932 54.2072328,32 51.9957423,32 L28.0042577,32 C25.7890275,32 24,33.7908724 24,36.0000255 L24,48.0000044 L12.0027785,48.0000044 C9.78987688,48.0000044 8,49.7906032 8,51.9994189 L8,116.00059 C8,118.211248 9.79210499,120.000004 12.0027785,120.000004 L58.7630167,120.000004 L55.6943257,128.000004 L55.6943257,128.000004 Z\"></path>\n <path d=\"M23.8728955,55.5 L119.875702,55.5 C124.293205,55.5 126.87957,59.5532655 125.650111,64.5630007 L112.305967,118.936999 C111.077582,123.942356 106.497904,128 102.083183,128 L6.08037597,128 C1.66287302,128 -0.923492342,123.946735 0.305967145,118.936999 L13.650111,64.5630007 C14.878496,59.5576436 19.4581739,55.5 23.8728955,55.5 L23.8728955,55.5 L23.8728955,55.5 Z M25.6530124,64 L113.647455,64 C115.858129,64 117.151473,66.0930612 116.538306,68.6662267 L105.417772,115.333773 C104.803671,117.910859 102.515967,120 100.303066,120 L12.3086228,120 C10.0979492,120 8.8046054,117.906939 9.41777189,115.333773 L20.5383062,68.6662267 C21.1524069,66.0891409 23.4401107,64 25.6530124,64 L25.6530124,64 L25.6530124,64 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/full-screen-button": {
"title": "$:/core/images/full-screen-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-full-screen-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g>\n <g>\n <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n </g>\n <g transform=\"translate(104.000000, 104.000000) rotate(-180.000000) translate(-104.000000, -104.000000) translate(80.000000, 80.000000)\">\n <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n </g>\n <g transform=\"translate(24.000000, 104.000000) rotate(-90.000000) translate(-24.000000, -104.000000) translate(0.000000, 80.000000)\">\n <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n </g>\n <g transform=\"translate(104.000000, 24.000000) rotate(90.000000) translate(-104.000000, -24.000000) translate(80.000000, 0.000000)\">\n <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n </g>\n </g>\n</svg>"
},
"$:/core/images/github": {
"title": "$:/core/images/github",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-github tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M63.9383506,1.60695328 C28.6017227,1.60695328 -0.055756057,30.2970814 -0.055756057,65.6906208 C-0.055756057,94.003092 18.2804728,118.019715 43.7123154,126.493393 C46.9143781,127.083482 48.0812647,125.104717 48.0812647,123.405261 C48.0812647,121.886765 48.02626,117.85449 47.9948287,112.508284 C30.1929317,116.379268 26.4368926,103.916587 26.4368926,103.916587 C23.5255693,96.5129372 19.3294921,94.5420399 19.3294921,94.5420399 C13.5186324,90.5687739 19.7695302,90.6474524 19.7695302,90.6474524 C26.1933001,91.099854 29.5721638,97.2525155 29.5721638,97.2525155 C35.2808718,107.044059 44.5531024,104.215566 48.1991321,102.575118 C48.7806109,98.4366275 50.4346826,95.612068 52.2616263,94.0109598 C38.0507543,92.3941159 23.1091047,86.8944862 23.1091047,62.3389152 C23.1091047,55.3443933 25.6039634,49.6205298 29.6978889,45.1437211 C29.0378318,43.5229433 26.8415704,37.0044266 30.3265147,28.1845627 C30.3265147,28.1845627 35.6973364,26.4615028 47.9241083,34.7542205 C53.027764,33.330139 58.5046663,32.6220321 63.9462084,32.5944947 C69.3838216,32.6220321 74.856795,33.330139 79.9683085,34.7542205 C92.1872225,26.4615028 97.5501864,28.1845627 97.5501864,28.1845627 C101.042989,37.0044266 98.8467271,43.5229433 98.190599,45.1437211 C102.292382,49.6205298 104.767596,55.3443933 104.767596,62.3389152 C104.767596,86.9574291 89.8023734,92.3744463 75.5482834,93.9598188 C77.8427675,95.9385839 79.8897303,99.8489072 79.8897303,105.828476 C79.8897303,114.392635 79.8111521,121.304544 79.8111521,123.405261 C79.8111521,125.120453 80.966252,127.114954 84.2115327,126.489459 C109.623731,117.996111 127.944244,93.9952241 127.944244,65.6906208 C127.944244,30.2970814 99.2867652,1.60695328 63.9383506,1.60695328\"></path>\n </g>\n </svg>\n"
},
"$:/core/images/globe": {
"title": "$:/core/images/globe",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-globe tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M72.8111354,37.1275855 C72.8111354,37.9789875 72.8111354,38.8303894 72.8111354,39.6817913 C72.8111354,41.8784743 73.7885604,46.5631866 72.8111354,48.5143758 C71.3445471,51.4420595 68.1617327,52.0543531 66.4170946,54.3812641 C65.2352215,55.9575873 61.7987417,64.9821523 62.7262858,67.3005778 C66.6959269,77.2228204 74.26087,70.4881886 80.6887657,76.594328 C81.5527211,77.415037 83.5758191,78.8666631 83.985137,79.8899578 C87.2742852,88.1128283 76.4086873,94.8989524 87.7419325,106.189751 C88.9872885,107.430443 91.555495,102.372895 91.8205061,101.575869 C92.6726866,99.0129203 98.5458765,96.1267309 100.908882,94.5234439 C102.928056,93.1534443 105.782168,91.8557166 107.236936,89.7775886 C109.507391,86.5342557 108.717505,82.2640435 110.334606,79.0328716 C112.473794,74.7585014 114.163418,69.3979002 116.332726,65.0674086 C120.230862,57.2857361 121.054075,67.1596684 121.400359,67.5059523 C121.757734,67.8633269 122.411167,67.5059523 122.916571,67.5059523 C123.011132,67.5059523 124.364019,67.6048489 124.432783,67.5059523 C125.0832,66.5705216 123.390209,49.5852316 123.114531,48.2089091 C121.710578,41.1996597 116.17083,32.4278331 111.249523,27.7092761 C104.975994,21.6942076 104.160516,11.5121686 92.9912146,12.7547535 C92.7872931,12.7774397 87.906794,22.9027026 85.2136766,26.2672064 C81.486311,30.9237934 82.7434931,22.1144904 78.6876623,22.1144904 C78.6065806,22.1144904 77.5045497,22.0107615 77.4353971,22.1144904 C76.8488637,22.9942905 75.9952305,26.0101404 75.1288269,26.5311533 C74.8635477,26.6906793 73.4071369,26.2924966 73.2826811,26.5311533 C71.0401728,30.8313939 81.5394677,28.7427264 79.075427,34.482926 C76.7225098,39.9642538 72.747373,32.4860199 72.747373,43.0434079\"></path>\n <path d=\"M44.4668556,7.01044608 C54.151517,13.1403033 45.1489715,19.2084878 47.1611905,23.2253896 C48.8157833,26.5283781 51.4021933,28.6198851 48.8753629,33.038878 C46.8123257,36.6467763 42.0052989,37.0050492 39.251679,39.7621111 C36.2115749,42.8060154 33.7884281,48.7028116 32.4624592,52.6732691 C30.8452419,57.5158356 47.0088721,59.5388126 44.5246867,63.6811917 C43.1386839,65.9923513 37.7785192,65.1466282 36.0880227,63.8791519 C34.9234453,63.0059918 32.4946425,63.3331166 31.6713597,62.0997342 C29.0575851,58.1839669 29.4107339,54.0758543 28.0457962,49.9707786 C27.1076833,47.1493864 21.732611,47.8501656 20.2022714,49.3776393 C19.6790362,49.8998948 19.8723378,51.1703278 19.8723378,51.8829111 C19.8723378,57.1682405 26.9914913,55.1986414 26.9914913,58.3421973 C26.9914913,72.9792302 30.9191897,64.8771867 38.1313873,69.6793121 C48.1678018,76.3618966 45.9763926,76.981595 53.0777543,84.0829567 C56.7511941,87.7563965 60.8192437,87.7689005 62.503478,93.3767069 C64.1046972,98.7081071 53.1759798,98.7157031 50.786754,100.825053 C49.663965,101.816317 47.9736094,104.970571 46.5680513,105.439676 C44.7757187,106.037867 43.334221,105.93607 41.6242359,107.219093 C39.1967302,109.040481 37.7241465,112.151588 37.6034934,112.030935 C35.4555278,109.88297 34.0848666,96.5511248 33.7147244,93.7726273 C33.1258872,89.3524817 28.1241923,88.2337027 26.7275443,84.7420826 C25.1572737,80.8164061 28.2518481,75.223612 25.599097,70.9819941 C19.0797019,60.557804 13.7775712,56.4811506 10.2493953,44.6896152 C9.3074899,41.5416683 13.5912267,38.1609942 15.1264825,35.8570308 C17.0029359,33.0410312 17.7876232,30.0028946 19.8723378,27.2224065 C22.146793,24.1888519 40.8551166,9.46076832 43.8574051,8.63490613 L44.4668556,7.01044608 Z\"></path>\n <path d=\"M64,126 C98.2416545,126 126,98.2416545 126,64 C126,29.7583455 98.2416545,2 64,2 C29.7583455,2 2,29.7583455 2,64 C2,98.2416545 29.7583455,126 64,126 Z M64,120 C94.927946,120 120,94.927946 120,64 C120,33.072054 94.927946,8 64,8 C33.072054,8 8,33.072054 8,64 C8,94.927946 33.072054,120 64,120 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/heading-1": {
"title": "$:/core/images/heading-1",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-heading-1 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M14,30 L27.25,30 L27.25,60.104 L61.7,60.104 L61.7,30 L74.95,30 L74.95,105.684 L61.7,105.684 L61.7,71.552 L27.25,71.552 L27.25,105.684 L14,105.684 L14,30 Z M84.3350766,43.78 C86.8790893,43.78 89.3523979,43.5680021 91.7550766,43.144 C94.1577553,42.7199979 96.3307336,42.0133383 98.2740766,41.024 C100.21742,40.0346617 101.87807,38.7626744 103.256077,37.208 C104.634084,35.6533256 105.535075,33.7453446 105.959077,31.484 L115.817077,31.484 L115.817077,105.684 L102.567077,105.684 L102.567077,53.32 L84.3350766,53.32 L84.3350766,43.78 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/heading-2": {
"title": "$:/core/images/heading-2",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-heading-2 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M125.519077,105.684 L74.8510766,105.684 C74.9217436,99.5359693 76.4057288,94.1653563 79.3030766,89.572 C82.2004244,84.9786437 86.1577182,80.986017 91.1750766,77.594 C93.5777553,75.8273245 96.0863969,74.113675 98.7010766,72.453 C101.315756,70.792325 103.718399,69.0080095 105.909077,67.1 C108.099754,65.1919905 109.901736,63.1250111 111.315077,60.899 C112.728417,58.6729889 113.47041,56.1113478 113.541077,53.214 C113.541077,51.8713266 113.382078,50.4403409 113.064077,48.921 C112.746075,47.4016591 112.127748,45.9883399 111.209077,44.681 C110.290405,43.3736601 109.018418,42.2783377 107.393077,41.395 C105.767735,40.5116622 103.647756,40.07 101.033077,40.07 C98.6303979,40.07 96.6340846,40.5469952 95.0440766,41.501 C93.4540687,42.4550048 92.1820814,43.762325 91.2280766,45.423 C90.2740719,47.083675 89.5674123,49.0446554 89.1080766,51.306 C88.648741,53.5673446 88.3837436,56.0053203 88.3130766,58.62 L76.2290766,58.62 C76.2290766,54.5213128 76.7767378,50.7230175 77.8720766,47.225 C78.9674154,43.7269825 80.610399,40.7060127 82.8010766,38.162 C84.9917542,35.6179873 87.6593942,33.6216739 90.8040766,32.173 C93.948759,30.7243261 97.6057224,30 101.775077,30 C106.297766,30 110.078395,30.7419926 113.117077,32.226 C116.155758,33.7100074 118.611401,35.5826554 120.484077,37.844 C122.356753,40.1053446 123.681739,42.5609868 124.459077,45.211 C125.236414,47.8610133 125.625077,50.3873213 125.625077,52.79 C125.625077,55.7580148 125.165748,58.4433213 124.247077,60.846 C123.328405,63.2486787 122.091751,65.4569899 120.537077,67.471 C118.982402,69.4850101 117.215753,71.3399915 115.237077,73.036 C113.2584,74.7320085 111.209087,76.3219926 109.089077,77.806 C106.969066,79.2900074 104.849087,80.7033266 102.729077,82.046 C100.609066,83.3886734 98.6480856,84.7313266 96.8460766,86.074 C95.0440676,87.4166734 93.47175,88.8123261 92.1290766,90.261 C90.7864032,91.7096739 89.8677458,93.2466585 89.3730766,94.872 L125.519077,94.872 L125.519077,105.684 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/heading-3": {
"title": "$:/core/images/heading-3",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-heading-3 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M94.8850766,62.224 C96.8637532,62.294667 98.8424001,62.1533351 100.821077,61.8 C102.799753,61.4466649 104.566402,60.8283378 106.121077,59.945 C107.675751,59.0616623 108.930072,57.8426744 109.884077,56.288 C110.838081,54.7333256 111.315077,52.8253446 111.315077,50.564 C111.315077,47.3839841 110.237421,44.8400095 108.082077,42.932 C105.926733,41.0239905 103.153094,40.07 99.7610766,40.07 C97.641066,40.07 95.8037511,40.4939958 94.2490766,41.342 C92.6944022,42.1900042 91.4047484,43.3383261 90.3800766,44.787 C89.3554048,46.2356739 88.5957458,47.860991 88.1010766,49.663 C87.6064075,51.465009 87.3944096,53.3199905 87.4650766,55.228 L75.3810766,55.228 C75.5224107,51.623982 76.1937373,48.2850154 77.3950766,45.211 C78.596416,42.1369846 80.2393995,39.4693446 82.3240766,37.208 C84.4087537,34.9466554 86.9350618,33.1800064 89.9030766,31.908 C92.8710915,30.6359936 96.2277246,30 99.9730766,30 C102.870424,30 105.714729,30.4239958 108.506077,31.272 C111.297424,32.1200042 113.806065,33.3566585 116.032077,34.982 C118.258088,36.6073415 120.042403,38.6743208 121.385077,41.183 C122.72775,43.6916792 123.399077,46.5713171 123.399077,49.822 C123.399077,53.5673521 122.551085,56.8356527 120.855077,59.627 C119.159068,62.4183473 116.509095,64.4499936 112.905077,65.722 L112.905077,65.934 C117.145098,66.7820042 120.448731,68.8843166 122.816077,72.241 C125.183422,75.5976835 126.367077,79.6786426 126.367077,84.484 C126.367077,88.017351 125.660417,91.1796527 124.247077,93.971 C122.833736,96.7623473 120.925755,99.129657 118.523077,101.073 C116.120398,103.016343 113.329093,104.517995 110.149077,105.578 C106.969061,106.638005 103.612428,107.168 100.079077,107.168 C95.7683884,107.168 92.005426,106.549673 88.7900766,105.313 C85.5747272,104.076327 82.8894207,102.327345 80.7340766,100.066 C78.5787325,97.8046554 76.9357489,95.0840159 75.8050766,91.904 C74.6744043,88.7239841 74.0737436,85.1906861 74.0030766,81.304 L86.0870766,81.304 C85.9457426,85.8266893 87.0587315,89.5896517 89.4260766,92.593 C91.7934218,95.5963483 95.3443863,97.098 100.079077,97.098 C104.107097,97.098 107.481396,95.9496782 110.202077,93.653 C112.922757,91.3563219 114.283077,88.0880212 114.283077,83.848 C114.283077,80.9506522 113.717749,78.6540085 112.587077,76.958 C111.456404,75.2619915 109.972419,73.9723378 108.135077,73.089 C106.297734,72.2056623 104.230755,71.6580011 101.934077,71.446 C99.6373985,71.2339989 97.2877553,71.163333 94.8850766,71.234 L94.8850766,62.224 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/heading-4": {
"title": "$:/core/images/heading-4",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-heading-4 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8,30 L21.25,30 L21.25,60.104 L55.7,60.104 L55.7,30 L68.95,30 L68.95,105.684 L55.7,105.684 L55.7,71.552 L21.25,71.552 L21.25,105.684 L8,105.684 L8,30 Z M84.5890766,78.548 L107.061077,78.548 L107.061077,45.9 L106.849077,45.9 L84.5890766,78.548 Z M128.049077,88.088 L118.509077,88.088 L118.509077,105.684 L107.061077,105.684 L107.061077,88.088 L75.2610766,88.088 L75.2610766,76.11 L107.061077,31.484 L118.509077,31.484 L118.509077,78.548 L128.049077,78.548 L128.049077,88.088 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/heading-5": {
"title": "$:/core/images/heading-5",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-heading-5 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M83.7550766,31.484 L122.127077,31.484 L122.127077,42.296 L92.7650766,42.296 L88.9490766,61.164 L89.1610766,61.376 C90.7864181,59.5386575 92.8533974,58.1430048 95.3620766,57.189 C97.8707558,56.2349952 100.361731,55.758 102.835077,55.758 C106.509762,55.758 109.795729,56.3763272 112.693077,57.613 C115.590424,58.8496729 118.0284,60.5809889 120.007077,62.807 C121.985753,65.0330111 123.487405,67.6653181 124.512077,70.704 C125.536748,73.7426819 126.049077,77.028649 126.049077,80.562 C126.049077,83.5300148 125.572081,86.5863176 124.618077,89.731 C123.664072,92.8756824 122.144754,95.7376538 120.060077,98.317 C117.9754,100.896346 115.30776,103.016325 112.057077,104.677 C108.806394,106.337675 104.919766,107.168 100.397077,107.168 C96.7930586,107.168 93.454092,106.691005 90.3800766,105.737 C87.3060613,104.782995 84.6030883,103.35201 82.2710766,101.444 C79.939065,99.5359905 78.0840835,97.1863473 76.7060766,94.395 C75.3280697,91.6036527 74.5684107,88.3353521 74.4270766,84.59 L86.5110766,84.59 C86.8644117,88.6180201 88.2423979,91.7096559 90.6450766,93.865 C93.0477553,96.0203441 96.2277235,97.098 100.185077,97.098 C102.729089,97.098 104.884401,96.6740042 106.651077,95.826 C108.417752,94.9779958 109.848738,93.8120074 110.944077,92.328 C112.039415,90.8439926 112.816741,89.1126766 113.276077,87.134 C113.735412,85.1553234 113.965077,83.0353446 113.965077,80.774 C113.965077,78.7246564 113.682413,76.763676 113.117077,74.891 C112.55174,73.018324 111.703749,71.3753404 110.573077,69.962 C109.442404,68.5486596 107.976086,67.4180042 106.174077,66.57 C104.372068,65.7219958 102.269755,65.298 99.8670766,65.298 C97.3230639,65.298 94.9380878,65.7749952 92.7120766,66.729 C90.4860655,67.6830048 88.8784149,69.4673203 87.8890766,72.082 L75.8050766,72.082 L83.7550766,31.484 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/heading-6": {
"title": "$:/core/images/heading-6",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-heading-6 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M112.587077,50.246 C112.304409,47.2073181 111.226753,44.751676 109.354077,42.879 C107.481401,41.006324 104.955093,40.07 101.775077,40.07 C99.584399,40.07 97.6940846,40.4763293 96.1040766,41.289 C94.5140687,42.1016707 93.1714154,43.1793266 92.0760766,44.522 C90.9807378,45.8646734 90.0974133,47.401658 89.4260766,49.133 C88.7547399,50.864342 88.2070787,52.6839905 87.7830766,54.592 C87.3590745,56.5000095 87.0587442,58.390324 86.8820766,60.263 C86.7054091,62.135676 86.5464107,63.8846585 86.4050766,65.51 L86.6170766,65.722 C88.2424181,62.7539852 90.4860623,60.5456739 93.3480766,59.097 C96.2100909,57.6483261 99.3017267,56.924 102.623077,56.924 C106.297762,56.924 109.583729,57.5599936 112.481077,58.832 C115.378424,60.1040064 117.834067,61.8529889 119.848077,64.079 C121.862087,66.3050111 123.399071,68.9373181 124.459077,71.976 C125.519082,75.0146819 126.049077,78.300649 126.049077,81.834 C126.049077,85.438018 125.466082,88.7769846 124.300077,91.851 C123.134071,94.9250154 121.455754,97.6103219 119.265077,99.907 C117.074399,102.203678 114.459758,103.987994 111.421077,105.26 C108.382395,106.532006 105.025762,107.168 101.351077,107.168 C95.9097161,107.168 91.4400941,106.16101 87.9420766,104.147 C84.4440591,102.13299 81.6880867,99.3770175 79.6740766,95.879 C77.6600666,92.3809825 76.2644138,88.2823568 75.4870766,83.583 C74.7097394,78.8836432 74.3210766,73.8133605 74.3210766,68.372 C74.3210766,63.9199777 74.7980719,59.4326893 75.7520766,54.91 C76.7060814,50.3873107 78.278399,46.2710186 80.4690766,42.561 C82.6597542,38.8509815 85.5393921,35.8300117 89.1080766,33.498 C92.6767611,31.1659883 97.0757171,30 102.305077,30 C105.273091,30 108.064397,30.4946617 110.679077,31.484 C113.293756,32.4733383 115.608067,33.8513245 117.622077,35.618 C119.636087,37.3846755 121.27907,39.5046543 122.551077,41.978 C123.823083,44.4513457 124.529743,47.2073181 124.671077,50.246 L112.587077,50.246 Z M100.927077,97.098 C103.117754,97.098 105.025735,96.6563378 106.651077,95.773 C108.276418,94.8896623 109.636738,93.7413404 110.732077,92.328 C111.827415,90.9146596 112.640074,89.271676 113.170077,87.399 C113.700079,85.526324 113.965077,83.6006766 113.965077,81.622 C113.965077,79.6433234 113.700079,77.7353425 113.170077,75.898 C112.640074,74.0606575 111.827415,72.4530069 110.732077,71.075 C109.636738,69.6969931 108.276418,68.5840042 106.651077,67.736 C105.025735,66.8879958 103.117754,66.464 100.927077,66.464 C98.736399,66.464 96.8107516,66.8703293 95.1500766,67.683 C93.4894017,68.4956707 92.0937489,69.5909931 90.9630766,70.969 C89.8324043,72.3470069 88.9844128,73.9546575 88.4190766,75.792 C87.8537405,77.6293425 87.5710766,79.5726564 87.5710766,81.622 C87.5710766,83.6713436 87.8537405,85.6146575 88.4190766,87.452 C88.9844128,89.2893425 89.8324043,90.9323261 90.9630766,92.381 C92.0937489,93.8296739 93.4894017,94.9779958 95.1500766,95.826 C96.8107516,96.6740042 98.736399,97.098 100.927077,97.098 L100.927077,97.098 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/help": {
"title": "$:/core/images/help",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-help tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M36.0548906,111.44117 C30.8157418,115.837088 20.8865444,118.803477 9.5,118.803477 C7.86465619,118.803477 6.25937294,118.742289 4.69372699,118.624467 C12.612543,115.984876 18.7559465,110.02454 21.0611049,102.609942 C8.74739781,92.845129 1.04940554,78.9359851 1.04940554,63.5 C1.04940554,33.9527659 29.2554663,10 64.0494055,10 C98.8433448,10 127.049406,33.9527659 127.049406,63.5 C127.049406,93.0472341 98.8433448,117 64.0494055,117 C53.9936953,117 44.48824,114.999337 36.0548906,111.44117 L36.0548906,111.44117 Z M71.4042554,77.5980086 C71.406883,77.2865764 71.4095079,76.9382011 71.4119569,76.5610548 C71.4199751,75.3262169 71.4242825,74.0811293 71.422912,72.9158546 C71.4215244,71.736154 71.4143321,70.709635 71.4001396,69.8743525 C71.4078362,68.5173028 71.9951951,67.7870427 75.1273009,65.6385471 C75.2388969,65.5619968 76.2124091,64.8981068 76.5126553,64.6910879 C79.6062455,62.5580654 81.5345849,60.9050204 83.2750652,58.5038955 C85.6146327,55.2762841 86.8327108,51.426982 86.8327108,46.8554323 C86.8327108,33.5625756 76.972994,24.9029551 65.3778484,24.9029551 C54.2752771,24.9029551 42.8794554,34.5115163 41.3121702,47.1975534 C40.9043016,50.4989536 43.2499725,53.50591 46.5513726,53.9137786 C49.8527728,54.3216471 52.8597292,51.9759763 53.2675978,48.6745761 C54.0739246,42.1479456 60.2395837,36.9492759 65.3778484,36.9492759 C70.6427674,36.9492759 74.78639,40.5885487 74.78639,46.8554323 C74.78639,50.4892974 73.6853224,52.008304 69.6746221,54.7736715 C69.4052605,54.9593956 68.448509,55.6118556 68.3131127,55.7047319 C65.6309785,57.5445655 64.0858213,58.803255 62.6123358,60.6352315 C60.5044618,63.2559399 59.3714208,66.3518252 59.3547527,69.9487679 C59.3684999,70.8407274 59.3752803,71.8084521 59.3765995,72.9300232 C59.3779294,74.0607297 59.3737237,75.2764258 59.36589,76.482835 C59.3634936,76.8518793 59.3609272,77.1924914 59.3583633,77.4963784 C59.3568319,77.6778944 59.3556368,77.8074256 59.3549845,77.8730928 C59.3219814,81.1994287 61.9917551,83.9227111 65.318091,83.9557142 C68.644427,83.9887173 71.3677093,81.3189435 71.4007124,77.9926076 C71.4014444,77.9187458 71.402672,77.7856841 71.4042554,77.5980086 Z M65.3778489,102.097045 C69.5359735,102.097045 72.9067994,98.7262189 72.9067994,94.5680944 C72.9067994,90.4099698 69.5359735,87.0391439 65.3778489,87.0391439 C61.2197243,87.0391439 57.8488984,90.4099698 57.8488984,94.5680944 C57.8488984,98.7262189 61.2197243,102.097045 65.3778489,102.097045 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/home-button": {
"title": "$:/core/images/home-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M112.9847,119.501583 C112.99485,119.336814 113,119.170705 113,119.003406 L113,67.56802 C116.137461,70.5156358 121.076014,70.4518569 124.133985,67.3938855 C127.25818,64.2696912 127.260618,59.2068102 124.131541,56.0777326 L70.3963143,2.34250601 C68.8331348,0.779326498 66.7828947,-0.000743167069 64.7337457,1.61675364e-05 C62.691312,-0.00409949529 60.6426632,0.777559815 59.077717,2.34250601 L33,28.420223 L33,28.420223 L33,8.00697327 C33,3.58484404 29.4092877,0 25,0 C20.581722,0 17,3.59075293 17,8.00697327 L17,44.420223 L5.3424904,56.0777326 C2.21694607,59.2032769 2.22220878,64.2760483 5.34004601,67.3938855 C8.46424034,70.5180798 13.5271213,70.5205187 16.6561989,67.3914411 L17,67.04764 L17,119.993027 C17,119.994189 17.0000002,119.995351 17.0000007,119.996514 C17.0000002,119.997675 17,119.998838 17,120 C17,124.418278 20.5881049,128 24.9992458,128 L105.000754,128 C109.418616,128 113,124.409288 113,120 C113,119.832611 112.99485,119.666422 112.9847,119.501583 Z M97,112 L97,51.5736087 L97,51.5736087 L64.7370156,19.3106244 L33,51.04764 L33,112 L97,112 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/import-button": {
"title": "$:/core/images/import-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-import-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M105.449437,94.2138951 C105.449437,94.2138951 110.049457,94.1897106 110.049457,99.4026111 C110.049457,104.615512 105.163246,104.615511 105.163246,104.615511 L45.0075072,105.157833 C45.0075072,105.157833 0.367531803,106.289842 0.367532368,66.6449212 C0.367532934,27.0000003 45.0428249,27.0000003 45.0428249,27.0000003 L105.532495,27.0000003 C105.532495,27.0000003 138.996741,25.6734987 138.996741,55.1771866 C138.996741,84.6808745 105.727102,82.8457535 105.727102,82.8457535 L56.1735087,82.8457535 C56.1735087,82.8457535 22.6899229,85.1500223 22.6899229,66.0913753 C22.6899229,47.0327282 56.1735087,49.3383013 56.1735087,49.3383013 L105.727102,49.3383013 C105.727102,49.3383013 111.245209,49.3383024 111.245209,54.8231115 C111.245209,60.3079206 105.727102,60.5074524 105.727102,60.5074524 L56.1735087,60.5074524 C56.1735087,60.5074524 37.48913,60.5074528 37.48913,66.6449195 C37.48913,72.7823862 56.1735087,71.6766023 56.1735087,71.6766023 L105.727102,71.6766029 C105.727102,71.6766029 127.835546,73.1411469 127.835546,55.1771866 C127.835546,35.5304025 105.727102,38.3035317 105.727102,38.3035317 L45.0428249,38.3035317 C45.0428249,38.3035317 11.5287276,38.3035313 11.5287276,66.6449208 C11.5287276,94.9863103 45.0428244,93.9579678 45.0428244,93.9579678 L105.449437,94.2138951 Z\" transform=\"translate(69.367532, 66.000000) rotate(-45.000000) translate(-69.367532, -66.000000) \"></path>\n </g>\n</svg>"
},
"$:/core/images/info-button": {
"title": "$:/core/images/info-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <g transform=\"translate(0.049406, 0.000000)\">\n <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"></path>\n <circle cx=\"64\" cy=\"32\" r=\"8\"></circle>\n <rect x=\"56\" y=\"48\" width=\"16\" height=\"56\" rx=\"8\"></rect>\n </g>\n </g>\n</svg>"
},
"$:/core/images/italic": {
"title": "$:/core/images/italic",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-italic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <polygon points=\"66.7114846 0 89.1204482 0 62.4089636 128 40 128\"></polygon>\n </g>\n</svg>"
},
"$:/core/images/left-arrow": {
"title": "$:/core/images/left-arrow",
"created": "20150315234410875",
"modified": "20150315235324760",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-left-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path transform=\"rotate(135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25075c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056z\"/>\n</svg>\n"
},
"$:/core/images/line-width": {
"title": "$:/core/images/line-width",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-line-width tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M128,-97 L112.992786,-97 C112.452362,-97 112,-96.5522847 112,-96 C112,-95.4438648 112.444486,-95 112.992786,-95 L128,-95 L128,-97 Z M128,-78.6794919 L111.216185,-88.3696322 C110.748163,-88.6398444 110.132549,-88.4782926 109.856406,-88 C109.578339,-87.5183728 109.741342,-86.9117318 110.216185,-86.6375814 L128,-76.3700908 L128,-78.6794919 Z M78.6794919,-128 L88.3696322,-111.216185 C88.6437826,-110.741342 88.4816272,-110.134474 88,-109.856406 C87.5217074,-109.580264 86.9077936,-109.748163 86.6375814,-110.216185 L76.3700908,-128 L78.6794919,-128 Z M97,-128 L97,-112.992786 C97,-112.444486 96.5561352,-112 96,-112 C95.4477153,-112 95,-112.452362 95,-112.992786 L95,-128 L97,-128 Z M115.629909,-128 L105.362419,-110.216185 C105.088268,-109.741342 104.481627,-109.578339 104,-109.856406 C103.521707,-110.132549 103.360156,-110.748163 103.630368,-111.216185 L113.320508,-128 L115.629909,-128 Z M128,-113.320508 L111.216185,-103.630368 C110.741342,-103.356217 110.134474,-103.518373 109.856406,-104 C109.580264,-104.478293 109.748163,-105.092206 110.216185,-105.362419 L128,-115.629909 L128,-113.320508 Z M48,-96 C48,-96.5522847 48.4523621,-97 48.9927864,-97 L79.0072136,-97 C79.5555144,-97 80,-96.5561352 80,-96 C80,-95.4477153 79.5476379,-95 79.0072136,-95 L48.9927864,-95 C48.4444856,-95 48,-95.4438648 48,-96 Z M54.4307806,-120 C54.706923,-120.478293 55.3225377,-120.639844 55.7905589,-120.369632 L81.7838153,-105.362419 C82.2586577,-105.088268 82.4216611,-104.481627 82.1435935,-104 C81.8674512,-103.521707 81.2518365,-103.360156 80.7838153,-103.630368 L54.7905589,-118.637581 C54.3157165,-118.911732 54.152713,-119.518373 54.4307806,-120 Z M104,-82.1435935 C104.478293,-82.4197359 105.092206,-82.2518365 105.362419,-81.7838153 L120.369632,-55.7905589 C120.643783,-55.3157165 120.481627,-54.7088482 120,-54.4307806 C119.521707,-54.1546382 118.907794,-54.3225377 118.637581,-54.7905589 L103.630368,-80.7838153 C103.356217,-81.2586577 103.518373,-81.865526 104,-82.1435935 Z M96,-80 C96.5522847,-80 97,-79.5476379 97,-79.0072136 L97,-48.9927864 C97,-48.4444856 96.5561352,-48 96,-48 C95.4477153,-48 95,-48.4523621 95,-48.9927864 L95,-79.0072136 C95,-79.5555144 95.4438648,-80 96,-80 Z M88,-82.1435935 C88.4782926,-81.8674512 88.6398444,-81.2518365 88.3696322,-80.7838153 L73.3624186,-54.7905589 C73.0882682,-54.3157165 72.4816272,-54.152713 72,-54.4307806 C71.5217074,-54.706923 71.3601556,-55.3225377 71.6303678,-55.7905589 L86.6375814,-81.7838153 C86.9117318,-82.2586577 87.5183728,-82.4216611 88,-82.1435935 Z M82.1435935,-88 C82.4197359,-87.5217074 82.2518365,-86.9077936 81.7838153,-86.6375814 L55.7905589,-71.6303678 C55.3157165,-71.3562174 54.7088482,-71.5183728 54.4307806,-72 C54.1546382,-72.4782926 54.3225377,-73.0922064 54.7905589,-73.3624186 L80.7838153,-88.3696322 C81.2586577,-88.6437826 81.865526,-88.4816272 82.1435935,-88 Z M1.30626177e-08,-41.9868843 L15.0170091,-57.9923909 L20.7983821,-52.9749272 L44.7207091,-81.2095939 L73.4260467,-42.1002685 L85.984793,-56.6159488 L104.48741,-34.0310661 L127.969109,-47.4978019 L127.969109,7.99473128e-07 L1.30626177e-08,7.99473128e-07 L1.30626177e-08,-41.9868843 Z M96,-84 C102.627417,-84 108,-89.372583 108,-96 C108,-102.627417 102.627417,-108 96,-108 C89.372583,-108 84,-102.627417 84,-96 C84,-89.372583 89.372583,-84 96,-84 Z\"></path>\n <path d=\"M16,18 L112,18 C113.104569,18 114,17.1045695 114,16 C114,14.8954305 113.104569,14 112,14 L16,14 C14.8954305,14 14,14.8954305 14,16 C14,17.1045695 14.8954305,18 16,18 L16,18 Z M16,35 L112,35 C114.209139,35 116,33.209139 116,31 C116,28.790861 114.209139,27 112,27 L16,27 C13.790861,27 12,28.790861 12,31 C12,33.209139 13.790861,35 16,35 L16,35 Z M16,56 L112,56 C115.313708,56 118,53.3137085 118,50 C118,46.6862915 115.313708,44 112,44 L16,44 C12.6862915,44 10,46.6862915 10,50 C10,53.3137085 12.6862915,56 16,56 L16,56 Z M16,85 L112,85 C117.522847,85 122,80.5228475 122,75 C122,69.4771525 117.522847,65 112,65 L16,65 C10.4771525,65 6,69.4771525 6,75 C6,80.5228475 10.4771525,85 16,85 L16,85 Z M16,128 L112,128 C120.836556,128 128,120.836556 128,112 C128,103.163444 120.836556,96 112,96 L16,96 C7.163444,96 0,103.163444 0,112 C0,120.836556 7.163444,128 16,128 L16,128 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/link": {
"title": "$:/core/images/link",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-link tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M128.719999,57.568543 C130.219553,53.8628171 131.045202,49.8121445 131.045202,45.5685425 C131.045202,27.8915447 116.718329,13.5685425 99.0452364,13.5685425 L67.0451674,13.5685425 C49.3655063,13.5685425 35.0452019,27.8954305 35.0452019,45.5685425 C35.0452019,63.2455403 49.3720745,77.5685425 67.0451674,77.5685425 L99.0452364,77.5685425 C100.406772,77.5685425 101.748384,77.4835732 103.065066,77.3186499 C96.4792444,73.7895096 91.1190212,68.272192 87.7873041,61.5685425 L67.0506214,61.5685425 C58.2110723,61.5685425 51.0452019,54.4070414 51.0452019,45.5685425 C51.0452019,36.7319865 58.2005234,29.5685425 67.0506214,29.5685425 L99.0397824,29.5685425 C107.879331,29.5685425 115.045202,36.7300436 115.045202,45.5685425 C115.045202,48.9465282 113.99957,52.0800164 112.21335,54.6623005 C114.314383,56.4735917 117.050039,57.5685425 120.041423,57.5685425 L128.720003,57.5685425 Z\" transform=\"translate(83.045202, 45.568542) rotate(-225.000000) translate(-83.045202, -45.568542)\"></path>\n <path d=\"M-0.106255113,71.0452019 C-1.60580855,74.7509276 -2.43145751,78.8016001 -2.43145751,83.0452019 C-2.43145751,100.7222 11.8954151,115.045202 29.568508,115.045202 L61.568577,115.045202 C79.2482381,115.045202 93.5685425,100.718314 93.5685425,83.0452019 C93.5685425,65.3682041 79.2416699,51.0452019 61.568577,51.0452019 L29.568508,51.0452019 C28.206973,51.0452019 26.8653616,51.1301711 25.5486799,51.2950943 C32.1345,54.8242347 37.4947231,60.3415524 40.8264403,67.0452019 L61.563123,67.0452019 C70.4026721,67.0452019 77.5685425,74.206703 77.5685425,83.0452019 C77.5685425,91.8817579 70.413221,99.0452019 61.563123,99.0452019 L29.573962,99.0452019 C20.7344129,99.0452019 13.5685425,91.8837008 13.5685425,83.0452019 C13.5685425,79.6672162 14.6141741,76.533728 16.4003949,73.9514439 C14.2993609,72.1401527 11.5637054,71.0452019 8.5723215,71.0452019 L-0.106255113,71.0452019 Z\" transform=\"translate(45.568542, 83.045202) rotate(-225.000000) translate(-45.568542, -83.045202)\"></path>\n </g>\n</svg>"
},
"$:/core/images/linkify": {
"title": "$:/core/images/linkify",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\"><path d=\"M17.031 31.919H9.048V96.85h7.983v6.92H0V25h17.031v6.919zm24.66 0h-7.983V96.85h7.983v6.92H24.66V25h17.03v6.919zM67.77 56.422l11.975-3.903 2.306 7.096-12.063 3.903 7.628 10.379-6.12 4.435-7.63-10.467-7.45 10.2-5.943-4.523L58.1 63.518 45.95 59.35l2.306-7.096 12.064 4.17V43.825h7.45v12.596zM86.31 96.85h7.982V31.92H86.31V25h17.031v78.77H86.31v-6.92zm24.659 0h7.983V31.92h-7.983V25H128v78.77h-17.031v-6.92z\" fill-rule=\"evenodd\"/></svg>"
},
"$:/core/images/list-bullet": {
"title": "$:/core/images/list-bullet",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-list-bullet tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M11.6363636,40.2727273 C18.0629498,40.2727273 23.2727273,35.0629498 23.2727273,28.6363636 C23.2727273,22.2097775 18.0629498,17 11.6363636,17 C5.20977746,17 0,22.2097775 0,28.6363636 C0,35.0629498 5.20977746,40.2727273 11.6363636,40.2727273 Z M11.6363636,75.1818182 C18.0629498,75.1818182 23.2727273,69.9720407 23.2727273,63.5454545 C23.2727273,57.1188684 18.0629498,51.9090909 11.6363636,51.9090909 C5.20977746,51.9090909 0,57.1188684 0,63.5454545 C0,69.9720407 5.20977746,75.1818182 11.6363636,75.1818182 Z M11.6363636,110.090909 C18.0629498,110.090909 23.2727273,104.881132 23.2727273,98.4545455 C23.2727273,92.0279593 18.0629498,86.8181818 11.6363636,86.8181818 C5.20977746,86.8181818 0,92.0279593 0,98.4545455 C0,104.881132 5.20977746,110.090909 11.6363636,110.090909 Z M34.9090909,22.8181818 L128,22.8181818 L128,34.4545455 L34.9090909,34.4545455 L34.9090909,22.8181818 Z M34.9090909,57.7272727 L128,57.7272727 L128,69.3636364 L34.9090909,69.3636364 L34.9090909,57.7272727 Z M34.9090909,92.6363636 L128,92.6363636 L128,104.272727 L34.9090909,104.272727 L34.9090909,92.6363636 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/list-number": {
"title": "$:/core/images/list-number",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-list-number tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M33.8390805,22.3563218 L128,22.3563218 L128,34.1264368 L33.8390805,34.1264368 L33.8390805,22.3563218 Z M33.8390805,57.6666667 L128,57.6666667 L128,69.4367816 L33.8390805,69.4367816 L33.8390805,57.6666667 Z M33.8390805,92.9770115 L128,92.9770115 L128,104.747126 L33.8390805,104.747126 L33.8390805,92.9770115 Z M0.379509711,42.6307008 L0.379509711,40.4082314 L1.37821948,40.4082314 C2.20382368,40.4082314 2.82301754,40.268077 3.23581964,39.9877642 C3.64862174,39.7074513 3.85501969,39.0400498 3.85501969,37.9855395 L3.85501969,22.7686318 C3.85501969,21.3270228 3.66193774,20.4327047 3.27576803,20.0856507 C2.88959832,19.7385967 1.79768657,19.5650723 0,19.5650723 L0,17.4226919 C3.50215975,17.2758613 6.25191314,16.4683055 8.24934266,15 L10.3666074,15 L10.3666074,37.865406 C10.3666074,38.786434 10.5164123,39.4404875 10.8160268,39.8275862 C11.1156412,40.2146849 11.764796,40.4082314 12.7635108,40.4082314 L13.7622206,40.4082314 L13.7622206,42.6307008 L0.379509711,42.6307008 Z M0.0798967812,77.9873934 L0.0798967812,76.0852799 C7.27064304,69.5312983 10.8659622,63.5046623 10.8659622,58.005191 C10.8659622,56.4434479 10.5397203,55.195407 9.88722667,54.2610308 C9.23473303,53.3266546 8.36253522,52.8594735 7.27060709,52.8594735 C6.3784219,52.8594735 5.61608107,53.1764892 4.98356173,53.8105302 C4.35104238,54.4445712 4.03478745,55.1753759 4.03478745,56.0029663 C4.03478745,56.9773871 4.28113339,57.8316611 4.77383268,58.5658139 C4.88036225,58.7259926 4.93362624,58.8461249 4.93362624,58.9262143 C4.93362624,59.0730449 4.77383427,59.2065252 4.45424555,59.3266593 C4.2411864,59.4067486 3.70188852,59.6336652 2.83633573,60.0074156 C1.99741533,60.3811661 1.47809145,60.5680386 1.2783485,60.5680386 C1.03865696,60.5680386 0.765679018,60.1976307 0.459406492,59.4568039 C0.153133966,58.715977 0,57.9184322 0,57.0641453 C0,55.1153036 0.848894811,53.5202138 2.5467099,52.2788283 C4.24452499,51.0374428 6.34512352,50.4167594 8.84856852,50.4167594 C11.3120649,50.4167594 13.3793735,51.0874979 15.0505562,52.4289952 C16.7217389,53.7704924 17.5573177,55.5224215 17.5573177,57.684835 C17.5573177,58.9662652 17.2743527,60.2076321 16.7084144,61.4089729 C16.142476,62.6103138 14.7875733,64.4623531 12.6436656,66.9651465 C10.4997579,69.4679398 8.40914641,71.7804862 6.3717683,73.902855 L17.8169822,73.902855 L16.7982982,79.6292176 L14.6810335,79.6292176 C14.7609307,79.3489048 14.8008787,79.0952922 14.8008787,78.8683723 C14.8008787,78.4812736 14.7010087,78.237672 14.5012658,78.1375603 C14.3015228,78.0374485 13.9020429,77.9873934 13.3028141,77.9873934 L0.0798967812,77.9873934 Z M12.2042333,97.1935484 C13.9486551,97.2335931 15.4400468,97.8309175 16.6784531,98.9855395 C17.9168594,100.140162 18.5360532,101.75861 18.5360532,103.840934 C18.5360532,106.830938 17.4041935,109.233584 15.14044,111.048943 C12.8766866,112.864303 10.1402492,113.771969 6.93104577,113.771969 C4.92030005,113.771969 3.26245842,113.388213 1.95747114,112.62069 C0.652483855,111.853166 0,110.848727 0,109.607341 C0,108.833144 0.26964894,108.209124 0.808954909,107.735261 C1.34826088,107.261399 1.93749375,107.024472 2.57667119,107.024472 C3.21584864,107.024472 3.73850152,107.224692 4.14464552,107.625139 C4.55078953,108.025586 4.92696644,108.67964 5.27318756,109.587319 C5.73925445,110.855401 6.51158227,111.489433 7.59019421,111.489433 C8.85523291,111.489433 9.87723568,111.012241 10.6562332,110.057842 C11.4352307,109.103444 11.8247236,107.371536 11.8247236,104.862069 C11.8247236,103.153495 11.7048796,101.838714 11.4651881,100.917686 C11.2254966,99.9966584 10.6728827,99.5361513 9.80732989,99.5361513 C9.22141723,99.5361513 8.62219737,99.843156 8.00965231,100.457175 C7.51695303,100.951059 7.07752513,101.197998 6.69135542,101.197998 C6.3584505,101.197998 6.08880156,101.051169 5.88240051,100.757508 C5.67599946,100.463847 5.57280049,100.183539 5.57280049,99.916574 C5.57280049,99.5962164 5.67599946,99.3225818 5.88240051,99.0956618 C6.08880156,98.8687419 6.57150646,98.5016711 7.33052967,97.9944383 C10.2068282,96.0722929 11.6449559,93.9766521 11.6449559,91.7074527 C11.6449559,90.5194601 11.3386879,89.615131 10.7261429,88.9944383 C10.1135978,88.3737455 9.37455999,88.0634038 8.5090072,88.0634038 C7.71003539,88.0634038 6.98431355,88.3270274 6.33181991,88.8542825 C5.67932627,89.3815377 5.35308434,90.0122321 5.35308434,90.7463849 C5.35308434,91.3871 5.60608828,91.9810874 6.11210376,92.5283648 C6.28521432,92.7285883 6.3717683,92.8954387 6.3717683,93.028921 C6.3717683,93.1490551 5.80250943,93.4560598 4.6639746,93.9499444 C3.52543978,94.4438289 2.80970494,94.6907675 2.51674861,94.6907675 C2.10394651,94.6907675 1.76771758,94.3570667 1.50805174,93.6896552 C1.24838591,93.0222436 1.11855494,92.4082342 1.11855494,91.8476085 C1.11855494,90.0989901 2.04734573,88.6240327 3.90495518,87.4226919 C5.76256463,86.2213511 7.86982116,85.6206897 10.226788,85.6206897 C12.2907985,85.6206897 14.0784711,86.0678487 15.5898594,86.9621802 C17.1012478,87.8565117 17.8569306,89.0778566 17.8569306,90.6262514 C17.8569306,91.987771 17.2876717,93.2491599 16.1491369,94.4104561 C15.0106021,95.5717522 13.6956474,96.4994404 12.2042333,97.1935484 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/list": {
"title": "$:/core/images/list",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-list tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M0.719999312,185.568543 C2.21955287,181.862817 3.0452019,177.812144 3.0452019,173.568542 C3.0452019,155.891545 -11.2816707,141.568542 -28.9547636,141.568542 L-60.9548326,141.568542 C-78.6344937,141.568542 -92.9547981,155.895431 -92.9547981,173.568542 C-92.9547981,191.24554 -78.6279255,205.568542 -60.9548326,205.568542 L-28.9547636,205.568542 C-27.593228,205.568542 -26.2516158,205.483573 -24.9349335,205.31865 C-31.5207556,201.78951 -36.8809788,196.272192 -40.2126959,189.568542 L-60.9493786,189.568542 C-69.7889277,189.568542 -76.9547981,182.407041 -76.9547981,173.568542 C-76.9547981,164.731986 -69.7994766,157.568542 -60.9493786,157.568542 L-28.9602176,157.568542 C-20.1206685,157.568542 -12.9547981,164.730044 -12.9547981,173.568542 C-12.9547981,176.946528 -14.0004297,180.080016 -15.7866505,182.6623 C-13.6856165,184.473592 -10.949961,185.568542 -7.9585771,185.568542 L0.720002586,185.568542 Z\" transform=\"translate(-44.954798, 173.568542) rotate(-225.000000) translate(44.954798, -173.568542) \"></path>\n <path d=\"M87.7480315,128 L23.9992458,128 C19.5813843,128 16,124.409247 16,119.993027 L16,8.00697327 C16,3.58484404 19.5881049,0 23.9992458,0 L104.000754,0 C108.418616,0 112,3.59075293 112,8.00697327 L112,104 L91.2492027,104 C90.2848199,104 89.410573,104.391703 88.7768998,105.025201 C88.1373658,105.661376 87.7480315,106.53563 87.7480315,107.501171 L87.7480315,128 Z M95.7480315,127.879386 L111.627417,112 L95.7480315,112 L95.7480315,127.879386 Z M40,15.5089165 C40,13.5709954 41.5636015,12 43.4998101,12 L98.5001899,12 C100.433082,12 102,13.5614718 102,15.5089165 L102,16.4910835 C102,18.4290046 100.436399,20 98.5001899,20 L43.4998101,20 C41.5669183,20 40,18.4385282 40,16.4910835 L40,15.5089165 Z M32,22 C35.3137085,22 38,19.3137085 38,16 C38,12.6862915 35.3137085,10 32,10 C28.6862915,10 26,12.6862915 26,16 C26,19.3137085 28.6862915,22 32,22 Z M40,31.5089165 C40,29.5709954 41.5636015,28 43.4998101,28 L98.5001899,28 C100.433082,28 102,29.5614718 102,31.5089165 L102,32.4910835 C102,34.4290046 100.436399,36 98.5001899,36 L43.4998101,36 C41.5669183,36 40,34.4385282 40,32.4910835 L40,31.5089165 Z M40,47.5089165 C40,45.5709954 41.5636015,44 43.4998101,44 L98.5001899,44 C100.433082,44 102,45.5614718 102,47.5089165 L102,48.4910835 C102,50.4290046 100.436399,52 98.5001899,52 L43.4998101,52 C41.5669183,52 40,50.4385282 40,48.4910835 L40,47.5089165 Z M40,63.5089165 C40,61.5709954 41.5636015,60 43.4998101,60 L98.5001899,60 C100.433082,60 102,61.5614718 102,63.5089165 L102,64.4910835 C102,66.4290046 100.436399,68 98.5001899,68 L43.4998101,68 C41.5669183,68 40,66.4385282 40,64.4910835 L40,63.5089165 Z M40,79.5089165 C40,77.5709954 41.5636015,76 43.4998101,76 L98.5001899,76 C100.433082,76 102,77.5614718 102,79.5089165 L102,80.4910835 C102,82.4290046 100.436399,84 98.5001899,84 L43.4998101,84 C41.5669183,84 40,82.4385282 40,80.4910835 L40,79.5089165 Z M40,95.5089165 C40,93.5709954 41.5636015,92 43.4998101,92 L98.5001899,92 C100.433082,92 102,93.5614718 102,95.5089165 L102,96.4910835 C102,98.4290046 100.436399,100 98.5001899,100 L43.4998101,100 C41.5669183,100 40,98.4385282 40,96.4910835 L40,95.5089165 Z M40,111.508916 C40,109.570995 41.5680474,108 43.4972017,108 L76.5027983,108 C78.4342495,108 80,109.561472 80,111.508916 L80,112.491084 C80,114.429005 78.4319526,116 76.5027983,116 L43.4972017,116 C41.5657505,116 40,114.438528 40,112.491084 L40,111.508916 Z M32,38 C35.3137085,38 38,35.3137085 38,32 C38,28.6862915 35.3137085,26 32,26 C28.6862915,26 26,28.6862915 26,32 C26,35.3137085 28.6862915,38 32,38 Z M32,54 C35.3137085,54 38,51.3137085 38,48 C38,44.6862915 35.3137085,42 32,42 C28.6862915,42 26,44.6862915 26,48 C26,51.3137085 28.6862915,54 32,54 Z M32,70 C35.3137085,70 38,67.3137085 38,64 C38,60.6862915 35.3137085,58 32,58 C28.6862915,58 26,60.6862915 26,64 C26,67.3137085 28.6862915,70 32,70 Z M32,86 C35.3137085,86 38,83.3137085 38,80 C38,76.6862915 35.3137085,74 32,74 C28.6862915,74 26,76.6862915 26,80 C26,83.3137085 28.6862915,86 32,86 Z M32,102 C35.3137085,102 38,99.3137085 38,96 C38,92.6862915 35.3137085,90 32,90 C28.6862915,90 26,92.6862915 26,96 C26,99.3137085 28.6862915,102 32,102 Z M32,118 C35.3137085,118 38,115.313708 38,112 C38,108.686292 35.3137085,106 32,106 C28.6862915,106 26,108.686292 26,112 C26,115.313708 28.6862915,118 32,118 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/locked-padlock": {
"title": "$:/core/images/locked-padlock",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-locked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M96.4723753,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L32.0000269,64 C32.0028554,48.2766389 32.3030338,16.2688026 64.1594984,16.2688041 C95.9543927,16.2688056 96.4648869,48.325931 96.4723753,64 Z M80.5749059,64 L48.4413579,64 C48.4426205,47.71306 48.5829272,31.9999996 64.1595001,31.9999996 C79.8437473,31.9999996 81.1369461,48.1359182 80.5749059,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/mail": {
"title": "$:/core/images/mail",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-mail tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M122.826782,104.894066 C121.945525,105.22777 120.990324,105.41043 119.993027,105.41043 L8.00697327,105.41043 C7.19458381,105.41043 6.41045219,105.289614 5.67161357,105.064967 L5.67161357,105.064967 L39.8346483,70.9019325 L60.6765759,91.7438601 C61.6118278,92.679112 62.8865166,93.0560851 64.0946097,92.8783815 C65.2975108,93.0473238 66.5641085,92.6696979 67.4899463,91.7438601 L88.5941459,70.6396605 C88.6693095,70.7292352 88.7490098,70.8162939 88.8332479,70.9005321 L122.826782,104.894066 Z M127.903244,98.6568194 C127.966933,98.2506602 128,97.8343714 128,97.4103789 L128,33.410481 C128,32.7414504 127.917877,32.0916738 127.763157,31.4706493 L94.2292399,65.0045665 C94.3188145,65.0797417 94.4058701,65.1594458 94.4901021,65.2436778 L127.903244,98.6568194 Z M0.205060636,99.2178117 C0.0709009529,98.6370366 0,98.0320192 0,97.4103789 L0,33.410481 C0,32.694007 0.0944223363,31.9995312 0.27147538,31.3387595 L0.27147538,31.3387595 L34.1777941,65.2450783 L0.205060636,99.2178117 L0.205060636,99.2178117 Z M5.92934613,25.6829218 C6.59211333,25.5051988 7.28862283,25.4104299 8.00697327,25.4104299 L119.993027,25.4104299 C120.759109,25.4104299 121.500064,25.5178649 122.201605,25.7184927 L122.201605,25.7184927 L64.0832611,83.8368368 L5.92934613,25.6829218 L5.92934613,25.6829218 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/menu-button": {
"title": "$:/core/images/menu-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <rect x=\"0\" y=\"16\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"0\" y=\"56\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"0\" y=\"96\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n</svg>"
},
"$:/core/images/mono-block": {
"title": "$:/core/images/mono-block",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-mono-block tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M23.9653488,32.9670593 L24.3217888,32.9670593 C25.0766067,32.9670593 25.6497006,33.1592554 26.0410876,33.5436534 C26.4324747,33.9280514 26.6281653,34.4906619 26.6281653,35.2315017 C26.6281653,36.0562101 26.4219913,36.6502709 26.009637,37.0137017 C25.5972828,37.3771326 24.9158602,37.5588453 23.9653488,37.5588453 L17.6542639,37.5588453 C16.6897744,37.5588453 16.0048573,37.380627 15.5994921,37.0241852 C15.1941269,36.6677435 14.9914474,36.0701882 14.9914474,35.2315017 C14.9914474,34.4207713 15.1941269,33.8406885 15.5994921,33.4912358 C16.0048573,33.141783 16.6897744,32.9670593 17.6542639,32.9670593 L18.388111,32.9670593 L17.5284616,30.5139133 L8.47069195,30.5139133 L7.5691084,32.9670593 L8.30295547,32.9670593 C9.25346691,32.9670593 9.93488953,33.1452775 10.3472438,33.5017193 C10.759598,33.8581611 10.965772,34.4347494 10.965772,35.2315017 C10.965772,36.0562101 10.759598,36.6502709 10.3472438,37.0137017 C9.93488953,37.3771326 9.25346691,37.5588453 8.30295547,37.5588453 L2.89345418,37.5588453 C1.92896463,37.5588453 1.24404754,37.3771326 0.838682371,37.0137017 C0.433317198,36.6502709 0.230637652,36.0562101 0.230637652,35.2315017 C0.230637652,34.4906619 0.426328248,33.9280514 0.817715312,33.5436534 C1.20910238,33.1592554 1.78219626,32.9670593 2.53701417,32.9670593 L2.89345418,32.9670593 L8.51262607,17.3256331 L6.83526132,17.3256331 C5.88474988,17.3256331 5.20332727,17.1439204 4.79097304,16.7804895 C4.37861882,16.4170587 4.1724448,15.8299869 4.1724448,15.0192565 C4.1724448,14.1945481 4.37861882,13.6004873 4.79097304,13.2370565 C5.20332727,12.8736257 5.88474988,12.691913 6.83526132,12.691913 L14.6979086,12.691913 C15.9419603,12.691913 16.815579,13.3628521 17.318791,14.7047506 L17.318791,14.7676518 L23.9653488,32.9670593 Z M12.9786097,17.3256331 L9.9383861,26.1737321 L16.0188333,26.1737321 L12.9786097,17.3256331 Z M35.3809383,26.6979086 L35.3809383,33.0928616 L38.5259972,33.0928616 C40.7485166,33.0928616 42.3140414,32.8482484 43.2226185,32.3590146 C44.1311956,31.8697807 44.5854773,31.0520736 44.5854773,29.9058686 C44.5854773,28.7456855 44.1521624,27.9209895 43.2855197,27.4317556 C42.4188769,26.9425218 40.9022748,26.6979086 38.7356678,26.6979086 L35.3809383,26.6979086 Z M46.0741385,24.370565 C47.5977525,24.9296893 48.7159844,25.6949794 49.428868,26.666458 C50.1417516,27.6379366 50.498188,28.8784752 50.498188,30.388111 C50.498188,31.6601189 50.1906743,32.8202846 49.5756374,33.8686428 C48.9606006,34.917001 48.0799929,35.7766419 46.933788,36.4475911 C46.2628387,36.8389782 45.5115266,37.1220307 44.6798291,37.296757 C43.8481316,37.4714834 42.6704935,37.5588453 41.1468796,37.5588453 L39.3856466,37.5588453 L30.2020747,37.5588453 C29.2795194,37.5588453 28.6190637,37.3771326 28.2206876,37.0137017 C27.8223114,36.6502709 27.6231264,36.0562101 27.6231264,35.2315017 C27.6231264,34.4906619 27.811828,33.9280514 28.189237,33.5436534 C28.5666459,33.1592554 29.118773,32.9670593 29.8456347,32.9670593 L30.2020747,32.9670593 L30.2020747,17.3256331 L29.8456347,17.3256331 C29.118773,17.3256331 28.5666459,17.1299425 28.189237,16.7385554 C27.811828,16.3471683 27.6231264,15.7740744 27.6231264,15.0192565 C27.6231264,14.2085262 27.8258059,13.6179599 28.2311711,13.24754 C28.6365363,12.8771201 29.2934976,12.691913 30.2020747,12.691913 L39.8469219,12.691913 C42.796303,12.691913 45.0362615,13.2650068 46.5668644,14.4112118 C48.0974674,15.5574168 48.8627574,17.2347648 48.8627574,19.443306 C48.8627574,20.5335986 48.6286276,21.4945792 48.1603609,22.3262767 C47.6920943,23.1579742 46.9966938,23.8393968 46.0741385,24.370565 L46.0741385,24.370565 Z M35.3809383,17.1998307 L35.3809383,22.4835296 L38.2114913,22.4835296 C39.9307988,22.4835296 41.1433816,22.2808501 41.8492761,21.8754849 C42.5551706,21.4701197 42.9081126,20.7852027 42.9081126,19.8207131 C42.9081126,18.912136 42.5901154,18.2481858 41.9541114,17.8288425 C41.3181074,17.4094992 40.2872373,17.1998307 38.8614701,17.1998307 L35.3809383,17.1998307 Z M71.244119,13.3838259 C71.5236812,12.880614 71.8102281,12.5241775 72.1037684,12.3145059 C72.3973087,12.1048342 72.7677231,12 73.2150226,12 C73.8999499,12 74.3856819,12.1817127 74.6722332,12.5451435 C74.9587844,12.9085744 75.1020579,13.5305909 75.1020579,14.4112118 L75.143992,19.8626472 C75.143992,20.8271368 74.9867406,21.4771091 74.6722332,21.8125837 C74.3577257,22.1480584 73.7881263,22.3157932 72.9634178,22.3157932 C72.3763372,22.3157932 71.92555,22.1760142 71.6110425,21.896452 C71.2965351,21.6168898 71.0274605,21.0997075 70.8038107,20.3448896 C70.4403799,19.0169692 69.8602971,18.0629775 69.0635448,17.482886 C68.2667926,16.9027945 67.1625385,16.612753 65.7507494,16.612753 C63.5981206,16.612753 61.9487284,17.3396038 60.8025235,18.7933272 C59.6563185,20.2470506 59.0832246,22.3507245 59.0832246,25.104412 C59.0832246,27.8441215 59.6633074,29.9477954 60.8234905,31.4154969 C61.9836736,32.8831984 63.6400547,33.6170381 65.7926836,33.6170381 C67.2603851,33.6170381 68.878327,33.1278116 70.6465578,32.149344 C72.4147886,31.1708763 73.5295261,30.6816498 73.9908037,30.6816498 C74.53595,30.6816498 74.9937262,30.9122852 75.3641461,31.3735628 C75.734566,31.8348404 75.9197732,32.4079343 75.9197732,33.0928616 C75.9197732,34.3229353 74.836486,35.4831009 72.669879,36.5733935 C70.5032721,37.663686 68.0641285,38.2088241 65.3523753,38.2088241 C61.6901107,38.2088241 58.7267959,36.9997358 56.4623422,34.5815228 C54.1978885,32.1633099 53.0656786,29.0043046 53.0656786,25.104412 C53.0656786,21.3443006 54.2118664,18.22024 56.5042763,15.7321366 C58.7966863,13.2440331 61.7040894,12 65.226573,12 C66.2190187,12 67.1974717,12.1118232 68.1619613,12.3354729 C69.1264508,12.5591227 70.1538264,12.9085702 71.244119,13.3838259 L71.244119,13.3838259 Z M81.4645862,32.9670593 L81.4645862,17.3256331 L81.1081461,17.3256331 C80.3533282,17.3256331 79.7802344,17.1299425 79.3888473,16.7385554 C78.9974602,16.3471683 78.8017696,15.7740744 78.8017696,15.0192565 C78.8017696,14.2085262 79.0114381,13.6179599 79.4307814,13.24754 C79.8501247,12.8771201 80.5280528,12.691913 81.4645862,12.691913 L85.4063933,12.691913 L86.6434498,12.691913 C89.5648747,12.691913 91.7034933,12.8177141 93.0593699,13.06932 C94.4152465,13.320926 95.5684233,13.740263 96.5189347,14.3273436 C98.210286,15.3337675 99.5067362,16.7699967 100.408324,18.6360743 C101.309912,20.5021519 101.7607,22.6582429 101.7607,25.104412 C101.7607,27.6903623 101.247012,29.9512876 100.219621,31.8872557 C99.1922296,33.8232239 97.7350336,35.2874089 95.8479888,36.2798546 C94.9953241,36.7271541 93.9959043,37.0521403 92.8496993,37.2548229 C91.7034944,37.4575055 89.9981906,37.5588453 87.7337369,37.5588453 L85.4063933,37.5588453 L81.4645862,37.5588453 C80.5000966,37.5588453 79.8151795,37.380627 79.4098143,37.0241852 C79.0044492,36.6677435 78.8017696,36.0701882 78.8017696,35.2315017 C78.8017696,34.4906619 78.9974602,33.9280514 79.3888473,33.5436534 C79.7802344,33.1592554 80.3533282,32.9670593 81.1081461,32.9670593 L81.4645862,32.9670593 Z M86.8740874,17.2417648 L86.8740874,32.9670593 L88.0692098,32.9670593 C90.7110725,32.9670593 92.6609895,32.3205814 93.9190194,31.0276063 C95.1770492,29.7346312 95.8060547,27.7462749 95.8060547,25.0624779 C95.8060547,22.4206153 95.1665658,20.4497314 93.8875688,19.1497672 C92.6085718,17.849803 90.6831161,17.1998307 88.1111439,17.1998307 C87.7756693,17.1998307 87.5205727,17.2033252 87.3458463,17.2103142 C87.1711199,17.2173033 87.0138685,17.2277867 86.8740874,17.2417648 L86.8740874,17.2417648 Z M121.94052,17.1159625 L112.190837,17.1159625 L112.190837,22.4835296 L115.88104,22.4835296 L115.88104,22.2319249 C115.88104,21.4351727 116.055763,20.841112 116.405216,20.4497249 C116.754669,20.0583378 117.285829,19.8626472 117.998713,19.8626472 C118.627728,19.8626472 119.141415,20.0408655 119.539792,20.3973072 C119.938168,20.753749 120.137353,21.2045363 120.137353,21.7496826 C120.137353,21.7776388 120.144342,21.8684951 120.15832,22.0222543 C120.172298,22.1760135 120.179287,22.3297704 120.179287,22.4835296 L120.179287,26.8237109 C120.179287,27.7602442 120.011552,28.4311834 119.676077,28.8365486 C119.340603,29.2419138 118.795465,29.4445933 118.040647,29.4445933 C117.327763,29.4445933 116.789614,29.2558917 116.426183,28.8784827 C116.062752,28.5010738 115.88104,27.9419578 115.88104,27.201118 L115.88104,26.8237109 L112.190837,26.8237109 L112.190837,33.0928616 L121.94052,33.0928616 L121.94052,30.5977816 C121.94052,29.6612482 122.118738,28.9903091 122.47518,28.5849439 C122.831622,28.1795787 123.415199,27.9768992 124.225929,27.9768992 C125.022682,27.9768992 125.592281,28.1760842 125.934745,28.5744604 C126.277208,28.9728365 126.448438,29.6472701 126.448438,30.5977816 L126.448438,35.6718099 C126.448438,36.4266278 126.30167,36.9298322 126.008129,37.1814382 C125.714589,37.4330442 125.134506,37.5588453 124.267863,37.5588453 L107.095842,37.5588453 C106.173287,37.5588453 105.512831,37.3771326 105.114455,37.0137017 C104.716079,36.6502709 104.516894,36.0562101 104.516894,35.2315017 C104.516894,34.4906619 104.705595,33.9280514 105.083004,33.5436534 C105.460413,33.1592554 106.01254,32.9670593 106.739402,32.9670593 L107.095842,32.9670593 L107.095842,17.3256331 L106.739402,17.3256331 C106.026518,17.3256331 105.477886,17.126448 105.093488,16.7280719 C104.70909,16.3296957 104.516894,15.7600963 104.516894,15.0192565 C104.516894,14.2085262 104.719573,13.6179599 105.124938,13.24754 C105.530304,12.8771201 106.187265,12.691913 107.095842,12.691913 L124.267863,12.691913 C125.120528,12.691913 125.697116,12.8212085 125.997646,13.0798036 C126.298175,13.3383986 126.448438,13.8520864 126.448438,14.6208824 L126.448438,19.3175037 C126.448438,20.2680151 126.273714,20.9494377 125.924261,21.361792 C125.574808,21.7741462 125.008703,21.9803202 124.225929,21.9803202 C123.415199,21.9803202 122.831622,21.7706517 122.47518,21.3513084 C122.118738,20.9319652 121.94052,20.254037 121.94052,19.3175037 L121.94052,17.1159625 Z M19.7719369,47.6405477 C20.037521,47.1373358 20.3205734,46.7808993 20.6211028,46.5712277 C20.9216322,46.361556 21.295541,46.2567218 21.7428405,46.2567218 C22.4277678,46.2567218 22.9134998,46.4384345 23.2000511,46.8018653 C23.4866023,47.1652962 23.6298758,47.7873127 23.6298758,48.6679336 L23.6718099,54.119369 C23.6718099,55.0838586 23.5145586,55.7338309 23.2000511,56.0693055 C22.8855436,56.4047802 22.3089553,56.572515 21.4702687,56.572515 C20.8831881,56.572515 20.4254119,56.4292415 20.0969263,56.1426902 C19.7684407,55.856139 19.4993662,55.3424512 19.2896945,54.6016114 C18.9122856,53.2597129 18.3322027,52.3022267 17.5494286,51.7291243 C16.7666545,51.1560218 15.6693894,50.8694748 14.2576003,50.8694748 C12.1049715,50.8694748 10.4590738,51.5963256 9.31985785,53.050049 C8.18064193,54.5037724 7.61104252,56.6074463 7.61104252,59.3611338 C7.61104252,62.1148214 8.20859773,64.2429566 9.40372609,65.7456034 C10.5988544,67.2482501 12.2936748,67.9995623 14.488238,67.9995623 C14.9914499,67.9995623 15.5645438,67.9401562 16.2075368,67.8213423 C16.8505299,67.7025283 17.6053364,67.5173212 18.4719792,67.2657152 L18.4719792,63.9529198 L16.1027015,63.9529198 C15.1521901,63.9529198 14.4777564,63.7781961 14.0793803,63.4287433 C13.6810042,63.0792906 13.4818191,62.4992078 13.4818191,61.6884774 C13.4818191,60.8497908 13.6810042,60.2522356 14.0793803,59.8957938 C14.4777564,59.5393521 15.1521901,59.3611338 16.1027015,59.3611338 L23.6718099,59.3611338 C24.6502776,59.3611338 25.3386891,59.5358576 25.7370653,59.8853103 C26.1354414,60.2347631 26.3346265,60.8218348 26.3346265,61.6465433 C26.3346265,62.3873831 26.1354414,62.9569825 25.7370653,63.3553586 C25.3386891,63.7537347 24.7621008,63.9529198 24.0072829,63.9529198 L23.6718099,63.9529198 L23.6718099,68.9430799 L23.6718099,69.1946846 C23.6718099,69.6419841 23.6228873,69.9529924 23.5250405,70.1277188 C23.4271937,70.3024451 23.2315031,70.4806634 22.9379628,70.6623788 C22.1412106,71.1376345 20.8762107,71.5569715 19.1429251,71.9204023 C17.4096396,72.2838332 15.6554131,72.4655459 13.8801932,72.4655459 C10.2179286,72.4655459 7.25461383,71.2564576 4.99016011,68.8382446 C2.72570638,66.4200317 1.59349651,63.2610264 1.59349651,59.3611338 C1.59349651,55.6010224 2.73968428,52.4769618 5.03209423,49.9888583 C7.32450417,47.5007549 10.2319073,46.2567218 13.7543909,46.2567218 C14.7328585,46.2567218 15.7078171,46.368545 16.6792957,46.5921947 C17.6507743,46.8158445 18.6816444,47.165292 19.7719369,47.6405477 L19.7719369,47.6405477 Z M35.611576,51.5823548 L35.611576,56.4047785 L42.4678043,56.4047785 L42.4678043,51.5823548 L42.1323314,51.5823548 C41.3775135,51.5823548 40.8009251,51.3866642 40.402549,50.9952772 C40.0041729,50.6038901 39.8049878,50.0307962 39.8049878,49.2759783 C39.8049878,48.4512699 40.0111618,47.8572091 40.4235161,47.4937783 C40.8358703,47.1303474 41.5172929,46.9486347 42.4678043,46.9486347 L47.8773056,46.9486347 C48.8278171,46.9486347 49.5022507,47.1303474 49.9006269,47.4937783 C50.299003,47.8572091 50.498188,48.4512699 50.498188,49.2759783 C50.498188,50.0307962 50.3059919,50.6038901 49.9215939,50.9952772 C49.5371959,51.3866642 48.9745854,51.5823548 48.2337456,51.5823548 L47.8773056,51.5823548 L47.8773056,67.2237811 L48.2337456,67.2237811 C48.9885636,67.2237811 49.5616574,67.4159772 49.9530445,67.8003752 C50.3444316,68.1847732 50.5401222,68.7473837 50.5401222,69.4882235 C50.5401222,70.3129319 50.3374426,70.9069927 49.9320774,71.2704235 C49.5267123,71.6338543 48.8417952,71.815567 47.8773056,71.815567 L42.4678043,71.815567 C41.5033148,71.815567 40.8183977,71.6373488 40.4130325,71.280907 C40.0076674,70.9244652 39.8049878,70.32691 39.8049878,69.4882235 C39.8049878,68.7473837 40.0041729,68.1847732 40.402549,67.8003752 C40.8009251,67.4159772 41.3775135,67.2237811 42.1323314,67.2237811 L42.4678043,67.2237811 L42.4678043,61.0384986 L35.611576,61.0384986 L35.611576,67.2237811 L35.9470489,67.2237811 C36.7018668,67.2237811 37.2784552,67.4159772 37.6768313,67.8003752 C38.0752074,68.1847732 38.2743925,68.7473837 38.2743925,69.4882235 C38.2743925,70.3129319 38.0682185,70.9069927 37.6558642,71.2704235 C37.24351,71.6338543 36.5620874,71.815567 35.611576,71.815567 L30.2020747,71.815567 C29.2375851,71.815567 28.552668,71.6373488 28.1473029,71.280907 C27.7419377,70.9244652 27.5392581,70.32691 27.5392581,69.4882235 C27.5392581,68.7473837 27.7349487,68.1847732 28.1263358,67.8003752 C28.5177229,67.4159772 29.0908168,67.2237811 29.8456347,67.2237811 L30.2020747,67.2237811 L30.2020747,51.5823548 L29.8456347,51.5823548 C29.1047949,51.5823548 28.5421844,51.3866642 28.1577864,50.9952772 C27.7733884,50.6038901 27.5811923,50.0307962 27.5811923,49.2759783 C27.5811923,48.4512699 27.7803773,47.8572091 28.1787534,47.4937783 C28.5771296,47.1303474 29.2515632,46.9486347 30.2020747,46.9486347 L35.611576,46.9486347 C36.5481093,46.9486347 37.2260374,47.1303474 37.6453807,47.4937783 C38.064724,47.8572091 38.2743925,48.4512699 38.2743925,49.2759783 C38.2743925,50.0307962 38.0752074,50.6038901 37.6768313,50.9952772 C37.2784552,51.3866642 36.7018668,51.5823548 35.9470489,51.5823548 L35.611576,51.5823548 Z M67.365213,51.5823548 L67.365213,67.2237811 L70.887679,67.2237811 C71.8381904,67.2237811 72.519613,67.4019993 72.9319673,67.7584411 C73.3443215,68.1148829 73.5504955,68.6914712 73.5504955,69.4882235 C73.5504955,70.2989538 73.340827,70.8895201 72.9214837,71.25994 C72.5021404,71.6303599 71.8242123,71.815567 70.887679,71.815567 L58.4332458,71.815567 C57.4827343,71.815567 56.8013117,71.6338543 56.3889575,71.2704235 C55.9766033,70.9069927 55.7704292,70.3129319 55.7704292,69.4882235 C55.7704292,68.6774931 55.9731088,68.0974103 56.378474,67.7479575 C56.7838391,67.3985048 57.4687562,67.2237811 58.4332458,67.2237811 L61.9557117,67.2237811 L61.9557117,51.5823548 L58.4332458,51.5823548 C57.4827343,51.5823548 56.8013117,51.4006421 56.3889575,51.0372113 C55.9766033,50.6737805 55.7704292,50.0867087 55.7704292,49.2759783 C55.7704292,48.4512699 55.9731088,47.8641981 56.378474,47.5147453 C56.7838391,47.1652926 57.4687562,46.9905689 58.4332458,46.9905689 L70.887679,46.9905689 C71.8801247,46.9905689 72.5720308,47.1652926 72.9634178,47.5147453 C73.3548049,47.8641981 73.5504955,48.4512699 73.5504955,49.2759783 C73.5504955,50.0867087 73.347816,50.6737805 72.9424508,51.0372113 C72.5370856,51.4006421 71.8521685,51.5823548 70.887679,51.5823548 L67.365213,51.5823548 Z M97.8608265,51.5823548 L97.8608265,63.1771386 L97.8608265,63.5755127 C97.8608265,65.4485794 97.7385199,66.8044357 97.493903,67.6431222 C97.2492861,68.4818088 96.8404325,69.2296264 96.26733,69.8865976 C95.5264902,70.7392623 94.4991146,71.3822457 93.1851723,71.815567 C91.87123,72.2488884 90.2917273,72.4655459 88.4466169,72.4655459 C87.1466527,72.4655459 85.8921362,72.3397448 84.6830298,72.0881388 C83.4739233,71.8365328 82.3102631,71.4591296 81.1920144,70.9559176 C80.5769776,70.6763554 80.175113,70.31293 79.9864085,69.8656305 C79.797704,69.418331 79.7033532,68.6914802 79.7033532,67.6850564 L79.7033532,63.3658422 C79.7033532,62.1637247 79.8780769,61.3250508 80.2275297,60.849795 C80.5769824,60.3745393 81.185021,60.136915 82.0516638,60.136915 C83.2957156,60.136915 83.9806326,61.0524675 84.1064356,62.8835998 C84.1204137,63.2050963 84.1413806,63.4497096 84.1693368,63.6174469 C84.3370741,65.2389076 84.7144774,66.3466561 85.301558,66.9407258 C85.8886386,67.5347954 86.8251579,67.8318258 88.1111439,67.8318258 C89.7046484,67.8318258 90.8263749,67.4089943 91.476357,66.5633187 C92.126339,65.7176431 92.4513252,64.1765796 92.4513252,61.9400821 L92.4513252,51.5823548 L88.9288593,51.5823548 C87.9783478,51.5823548 87.2969252,51.4006421 86.884571,51.0372113 C86.4722168,50.6737805 86.2660427,50.0867087 86.2660427,49.2759783 C86.2660427,48.4512699 86.4652278,47.8641981 86.8636039,47.5147453 C87.26198,47.1652926 87.9503916,46.9905689 88.9288593,46.9905689 L99.6220595,46.9905689 C100.600527,46.9905689 101.288939,47.1652926 101.687315,47.5147453 C102.085691,47.8641981 102.284876,48.4512699 102.284876,49.2759783 C102.284876,50.0867087 102.078702,50.6737805 101.666348,51.0372113 C101.253994,51.4006421 100.572571,51.5823548 99.6220595,51.5823548 L97.8608265,51.5823548 Z M112.505343,51.5823548 L112.505343,57.9353738 L118.984165,51.4565525 C118.257303,51.3726838 117.747109,51.1665098 117.453569,50.8380242 C117.160029,50.5095387 117.013261,49.9888619 117.013261,49.2759783 C117.013261,48.4512699 117.212446,47.8572091 117.610822,47.4937783 C118.009198,47.1303474 118.683632,46.9486347 119.634143,46.9486347 L124.771073,46.9486347 C125.721584,46.9486347 126.396018,47.1303474 126.794394,47.4937783 C127.19277,47.8572091 127.391955,48.4512699 127.391955,49.2759783 C127.391955,50.0447743 127.19277,50.6213627 126.794394,51.0057607 C126.396018,51.3901587 125.812441,51.5823548 125.043645,51.5823548 L124.561402,51.5823548 L118.459988,57.641835 C119.592215,58.4805215 120.626579,59.5812811 121.563113,60.9441468 C122.499646,62.3070125 123.596911,64.400203 124.854941,67.2237811 L125.127513,67.2237811 L125.546854,67.2237811 C126.371563,67.2237811 126.98659,67.4124827 127.391955,67.7898917 C127.79732,68.1673006 128,68.7334056 128,69.4882235 C128,70.3129319 127.793826,70.9069927 127.381472,71.2704235 C126.969118,71.6338543 126.287695,71.815567 125.337183,71.815567 L122.758235,71.815567 C121.626008,71.815567 120.710456,71.0537715 120.01155,69.5301576 C119.885747,69.2505954 119.787902,69.026949 119.718012,68.8592117 C118.795456,66.9022764 117.949793,65.3926632 117.180997,64.3303269 C116.412201,63.2679906 115.510627,62.2965265 114.476247,61.4159056 L112.505343,63.302941 L112.505343,67.2237811 L112.840816,67.2237811 C113.595634,67.2237811 114.172222,67.4159772 114.570599,67.8003752 C114.968975,68.1847732 115.16816,68.7473837 115.16816,69.4882235 C115.16816,70.3129319 114.961986,70.9069927 114.549631,71.2704235 C114.137277,71.6338543 113.455855,71.815567 112.505343,71.815567 L107.095842,71.815567 C106.131352,71.815567 105.446435,71.6373488 105.04107,71.280907 C104.635705,70.9244652 104.433025,70.32691 104.433025,69.4882235 C104.433025,68.7473837 104.628716,68.1847732 105.020103,67.8003752 C105.41149,67.4159772 105.984584,67.2237811 106.739402,67.2237811 L107.095842,67.2237811 L107.095842,51.5823548 L106.739402,51.5823548 C105.998562,51.5823548 105.435952,51.3866642 105.051554,50.9952772 C104.667156,50.6038901 104.474959,50.0307962 104.474959,49.2759783 C104.474959,48.4512699 104.674145,47.8572091 105.072521,47.4937783 C105.470897,47.1303474 106.14533,46.9486347 107.095842,46.9486347 L112.505343,46.9486347 C113.441877,46.9486347 114.119805,47.1303474 114.539148,47.4937783 C114.958491,47.8572091 115.16816,48.4512699 115.16816,49.2759783 C115.16816,50.0307962 114.968975,50.6038901 114.570599,50.9952772 C114.172222,51.3866642 113.595634,51.5823548 112.840816,51.5823548 L112.505343,51.5823548 Z M13.439885,96.325622 L17.4445933,84.4372993 C17.6961993,83.6545252 18.0456468,83.0849258 18.4929463,82.728484 C18.9402458,82.3720422 19.5343065,82.193824 20.2751463,82.193824 L23.5460076,82.193824 C24.496519,82.193824 25.1779416,82.3755367 25.5902958,82.7389675 C26.0026501,83.1023984 26.2088241,83.6964591 26.2088241,84.5211676 C26.2088241,85.2759855 26.009639,85.8490794 25.6112629,86.2404664 C25.2128868,86.6318535 24.6362984,86.8275441 23.8814805,86.8275441 L23.5460076,86.8275441 L24.1330852,102.46897 L24.4895252,102.46897 C25.2443431,102.46897 25.8104481,102.661166 26.187857,103.045564 C26.565266,103.429962 26.7539676,103.992573 26.7539676,104.733413 C26.7539676,105.558121 26.5547826,106.152182 26.1564064,106.515613 C25.7580303,106.879044 25.0835967,107.060756 24.1330852,107.060756 L19.4154969,107.060756 C18.4649855,107.060756 17.7905518,106.882538 17.3921757,106.526096 C16.9937996,106.169654 16.7946145,105.572099 16.7946145,104.733413 C16.7946145,103.992573 16.9868106,103.429962 17.3712086,103.045564 C17.7556066,102.661166 18.325206,102.46897 19.0800239,102.46897 L19.4154969,102.46897 L19.1219581,89.6790642 L16.0607674,99.1981091 C15.8371177,99.9109927 15.5191204,100.42468 15.1067662,100.739188 C14.694412,101.053695 14.1248126,101.210947 13.3979509,101.210947 C12.6710892,101.210947 12.0945008,101.053695 11.6681685,100.739188 C11.2418362,100.42468 10.91685,99.9109927 10.6932002,99.1981091 L7.65297664,89.6790642 L7.35943781,102.46897 L7.69491075,102.46897 C8.44972866,102.46897 9.01932808,102.661166 9.40372609,103.045564 C9.78812409,103.429962 9.98032022,103.992573 9.98032022,104.733413 C9.98032022,105.558121 9.77764067,106.152182 9.3722755,106.515613 C8.96691032,106.879044 8.29597114,107.060756 7.35943781,107.060756 L2.62088241,107.060756 C1.68434908,107.060756 1.01340989,106.879044 0.608044719,106.515613 C0.202679546,106.152182 0,105.558121 0,104.733413 C0,103.992573 0.192196121,103.429962 0.57659413,103.045564 C0.960992139,102.661166 1.53059155,102.46897 2.28540946,102.46897 L2.62088241,102.46897 L3.22892713,86.8275441 L2.89345418,86.8275441 C2.13863627,86.8275441 1.56204791,86.6318535 1.16367179,86.2404664 C0.765295672,85.8490794 0.5661106,85.2759855 0.5661106,84.5211676 C0.5661106,83.6964591 0.772284622,83.1023984 1.18463885,82.7389675 C1.59699308,82.3755367 2.27841569,82.193824 3.22892713,82.193824 L6.49978838,82.193824 C7.22665007,82.193824 7.81022738,82.3685477 8.25053783,82.7180005 C8.69084827,83.0674532 9.05077919,83.6405471 9.33034138,84.4372993 L13.439885,96.325622 Z M43.8935644,98.3803938 L43.8935644,86.8275441 L42.7403761,86.8275441 C41.8178209,86.8275441 41.1573651,86.6458314 40.758989,86.2824006 C40.3606129,85.9189697 40.1614278,85.3318979 40.1614278,84.5211676 C40.1614278,83.7104372 40.3606129,83.119871 40.758989,82.7494511 C41.1573651,82.3790312 41.8178209,82.193824 42.7403761,82.193824 L48.6950209,82.193824 C49.6035981,82.193824 50.2605593,82.3790312 50.6659245,82.7494511 C51.0712897,83.119871 51.2739692,83.7104372 51.2739692,84.5211676 C51.2739692,85.2620074 51.0817731,85.8316068 50.6973751,86.2299829 C50.3129771,86.628359 49.7643445,86.8275441 49.051461,86.8275441 L48.6950209,86.8275441 L48.6950209,105.865634 C48.6950209,106.522605 48.6251315,106.934953 48.4853504,107.10269 C48.3455693,107.270428 48.0310665,107.354295 47.5418327,107.354295 L45.4451268,107.354295 C44.7741775,107.354295 44.3024234,107.284406 44.0298503,107.144625 C43.7572771,107.004843 43.5231473,106.76023 43.3274538,106.410777 L34.6051571,91.0838571 L34.6051571,102.46897 L35.8212466,102.46897 C36.7298237,102.46897 37.379796,102.643694 37.7711831,102.993147 C38.1625701,103.3426 38.3582607,103.922682 38.3582607,104.733413 C38.3582607,105.558121 38.1590757,106.152182 37.7606995,106.515613 C37.3623234,106.879044 36.7158456,107.060756 35.8212466,107.060756 L29.8037005,107.060756 C28.8951234,107.060756 28.2381621,106.879044 27.832797,106.515613 C27.4274318,106.152182 27.2247522,105.558121 27.2247522,104.733413 C27.2247522,103.992573 27.4134539,103.429962 27.7908629,103.045564 C28.1682718,102.661166 28.7273878,102.46897 29.4682276,102.46897 L29.8037005,102.46897 L29.8037005,86.8275441 L29.4682276,86.8275441 C28.755344,86.8275441 28.203217,86.628359 27.8118299,86.2299829 C27.4204428,85.8316068 27.2247522,85.2620074 27.2247522,84.5211676 C27.2247522,83.7104372 27.4309263,83.119871 27.8432805,82.7494511 C28.2556347,82.3790312 28.9091015,82.193824 29.8037005,82.193824 L33.2422983,82.193824 C34.0670067,82.193824 34.6261227,82.3021527 34.919663,82.5188134 C35.2132033,82.7354741 35.5416839,83.1722835 35.9051148,83.8292546 L43.8935644,98.3803938 Z M64.6604624,86.3662688 C62.8572863,86.3662688 61.4420239,87.0931196 60.4146329,88.546843 C59.3872418,90.0005663 58.873554,92.0203728 58.873554,94.6063231 C58.873554,97.1922733 59.3907363,99.2190688 60.4251164,100.68677 C61.4594965,102.154472 62.8712644,102.888312 64.6604624,102.888312 C66.4636385,102.888312 67.8823953,102.157966 68.9167754,100.697254 C69.9511555,99.2365414 70.4683378,97.2062514 70.4683378,94.6063231 C70.4683378,92.0203728 69.95465,90.0005663 68.9272589,88.546843 C67.8998679,87.0931196 66.4776166,86.3662688 64.6604624,86.3662688 L64.6604624,86.3662688 Z M64.6604624,81.501911 C68.0990773,81.501911 70.929602,82.7319662 73.1521214,85.1921135 C75.3746408,87.6522607 76.4858838,90.7902992 76.4858838,94.6063231 C76.4858838,98.4503032 75.3816297,101.595331 73.1730884,104.0415 C70.9645471,106.487669 68.1270335,107.710735 64.6604624,107.710735 C61.2358256,107.710735 58.4053009,106.477185 56.1688034,104.010049 C53.9323059,101.542913 52.8140739,98.4083688 52.8140739,94.6063231 C52.8140739,90.7763211 53.9218224,87.6347881 56.1373528,85.1816299 C58.3528831,82.7284717 61.1938912,81.501911 64.6604624,81.501911 L64.6604624,81.501911 Z M87.4611651,98.1707232 L87.4611651,102.46897 L89.6207722,102.46897 C90.5293493,102.46897 91.1758272,102.643694 91.5602252,102.993147 C91.9446232,103.3426 92.1368193,103.922682 92.1368193,104.733413 C92.1368193,105.558121 91.9411287,106.152182 91.5497417,106.515613 C91.1583546,106.879044 90.5153712,107.060756 89.6207722,107.060756 L82.3661697,107.060756 C81.4436145,107.060756 80.7831587,106.879044 80.3847826,106.515613 C79.9864065,106.152182 79.7872214,105.558121 79.7872214,104.733413 C79.7872214,103.992573 79.9759231,103.429962 80.353332,103.045564 C80.730741,102.661166 81.282868,102.46897 82.0097297,102.46897 L82.3661697,102.46897 L82.3661697,86.8275441 L82.0097297,86.8275441 C81.2968461,86.8275441 80.7482136,86.628359 80.3638155,86.2299829 C79.9794175,85.8316068 79.7872214,85.2620074 79.7872214,84.5211676 C79.7872214,83.7104372 79.989901,83.119871 80.3952661,82.7494511 C80.8006313,82.3790312 81.4575926,82.193824 82.3661697,82.193824 L91.0255652,82.193824 C94.450202,82.193824 97.0396079,82.8507853 98.7938606,84.1647276 C100.548113,85.4786699 101.425227,87.414609 101.425227,89.972603 C101.425227,92.6703781 100.551608,94.7111515 98.8043442,96.0949843 C97.0570805,97.4788171 94.4641801,98.1707232 91.0255652,98.1707232 L87.4611651,98.1707232 Z M87.4611651,86.8275441 L87.4611651,93.4531348 L90.4384875,93.4531348 C92.0879044,93.4531348 93.328443,93.1735768 94.1601405,92.6144525 C94.9918381,92.0553281 95.4076806,91.2166541 95.4076806,90.0984053 C95.4076806,89.0500471 94.9778602,88.2428234 94.1182064,87.67671 C93.2585527,87.1105966 92.031992,86.8275441 90.4384875,86.8275441 L87.4611651,86.8275441 Z M114.727851,107.396229 L113.092421,109.03166 C113.69348,108.835966 114.284046,108.689198 114.864137,108.591352 C115.444229,108.493505 116.013828,108.444582 116.572953,108.444582 C117.677223,108.444582 118.840883,108.608823 120.063968,108.937308 C121.287053,109.265794 122.031376,109.430034 122.29696,109.430034 C122.744259,109.430034 123.327837,109.279772 124.047709,108.979242 C124.767582,108.678713 125.253314,108.52845 125.50492,108.52845 C126.02211,108.52845 126.45193,108.727636 126.794394,109.126012 C127.136858,109.524388 127.308087,110.024098 127.308087,110.625156 C127.308087,111.421909 126.836333,112.099837 125.892811,112.658961 C124.949288,113.218086 123.792617,113.497643 122.422762,113.497643 C121.486229,113.497643 120.28413,113.277492 118.816428,112.837181 C117.348727,112.396871 116.286406,112.176719 115.629435,112.176719 C114.636989,112.176719 113.518757,112.449288 112.274706,112.994434 C111.030654,113.53958 110.261869,113.812149 109.968329,113.812149 C109.36727,113.812149 108.857077,113.612964 108.437734,113.214588 C108.01839,112.816212 107.808722,112.337469 107.808722,111.778345 C107.808722,111.386958 107.941512,110.971115 108.207096,110.530805 C108.47268,110.090494 108.94094,109.520895 109.611889,108.821989 L111.729562,106.683349 C109.395218,105.830685 107.536157,104.29661 106.152324,102.08108 C104.768491,99.8655494 104.076585,97.3180772 104.076585,94.4385866 C104.076585,90.6365409 105.180839,87.5299526 107.389381,85.1187288 C109.597922,82.7075049 112.442425,81.501911 115.922974,81.501911 C119.389545,81.501911 122.227059,82.7109994 124.4356,85.1292123 C126.644141,87.5474252 127.748395,90.650519 127.748395,94.4385866 C127.748395,98.2126762 126.65113,101.322759 124.456567,103.768928 C122.262004,106.215097 119.480402,107.438163 116.111677,107.438163 C115.888028,107.438163 115.660887,107.434669 115.430248,107.42768 C115.199609,107.420691 114.965479,107.410207 114.727851,107.396229 L114.727851,107.396229 Z M115.922974,86.3662688 C114.119798,86.3662688 112.704535,87.0931196 111.677144,88.546843 C110.649753,90.0005663 110.136065,92.0203728 110.136065,94.6063231 C110.136065,97.1922733 110.653248,99.2190688 111.687628,100.68677 C112.722008,102.154472 114.133776,102.888312 115.922974,102.888312 C117.72615,102.888312 119.144907,102.157966 120.179287,100.697254 C121.213667,99.2365414 121.730849,97.2062514 121.730849,94.6063231 C121.730849,92.0203728 121.217161,90.0005663 120.18977,88.546843 C119.162379,87.0931196 117.740128,86.3662688 115.922974,86.3662688 L115.922974,86.3662688 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/mono-line": {
"title": "$:/core/images/mono-line",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-mono-line tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M60.4374591,84.522627 L61.3450888,84.522627 C63.2671377,84.522627 64.7264493,85.0120303 65.7230673,85.9908515 C66.7196852,86.9696727 67.2179868,88.4022896 67.2179868,90.288745 C67.2179868,92.3887615 66.6929905,93.9014625 65.6429823,94.8268935 C64.5929741,95.7523244 62.857817,96.215033 60.4374591,96.215033 L44.3670747,96.215033 C41.9111232,96.215033 40.1670679,95.7612227 39.1348565,94.8535884 C38.102645,93.9459542 37.586547,92.424355 37.586547,90.288745 C37.586547,88.2243221 38.102645,86.747214 39.1348565,85.8573766 C40.1670679,84.9675391 41.9111232,84.522627 44.3670747,84.522627 L46.235724,84.522627 L44.0467348,78.2759992 L20.9822627,78.2759992 L18.6864935,84.522627 L20.5551429,84.522627 C22.9755008,84.522627 24.7106579,84.9764373 25.7606661,85.8840716 C26.8106743,86.7917058 27.3356705,88.2599156 27.3356705,90.288745 C27.3356705,92.3887615 26.8106743,93.9014625 25.7606661,94.8268935 C24.7106579,95.7523244 22.9755008,96.215033 20.5551429,96.215033 L6.78052766,96.215033 C4.32457622,96.215033 2.58052094,95.7523244 1.54830946,94.8268935 C0.516097994,93.9014625 0,92.3887615 0,90.288745 C0,88.4022896 0.498301511,86.9696727 1.49491948,85.9908515 C2.49153745,85.0120303 3.95084902,84.522627 5.87289797,84.522627 L6.78052766,84.522627 L21.0890427,44.6937008 L16.8178442,44.6937008 C14.3974863,44.6937008 12.6623292,44.2309922 11.612321,43.3055613 C10.5623128,42.3801303 10.0373165,40.8852258 10.0373165,38.8208028 C10.0373165,36.7207864 10.5623128,35.2080854 11.612321,34.2826544 C12.6623292,33.3572234 14.3974863,32.8945149 16.8178442,32.8945149 L36.8390873,32.8945149 C40.0069087,32.8945149 42.231469,34.6029772 43.512835,38.0199531 L43.512835,38.180123 L60.4374591,84.522627 Z M32.4611088,44.6937008 L24.7195615,67.224273 L40.2026561,67.224273 L32.4611088,44.6937008 Z M89.5058233,68.5590225 L89.5058233,84.8429669 L97.5143205,84.8429669 C103.173687,84.8429669 107.160099,84.22009 109.473676,82.9743176 C111.787254,81.7285451 112.944025,79.6463566 112.944025,76.7276897 C112.944025,73.7734293 111.840643,71.6734444 109.633846,70.4276719 C107.427049,69.1818994 103.565213,68.5590225 98.0482204,68.5590225 L89.5058233,68.5590225 Z M116.734714,62.6327346 C120.614405,64.0564746 123.461842,66.0051894 125.277111,68.4789376 C127.092379,70.9526857 128,74.1115614 128,77.9556593 C128,81.1946677 127.216955,84.1488838 125.650841,86.8183962 C124.084727,89.4879087 121.84237,91.676876 118.923703,93.385364 C117.215215,94.3819819 115.302093,95.1027395 113.18428,95.5476582 C111.066467,95.9925769 108.06776,96.215033 104.188068,96.215033 L99.7033098,96.215033 L76.3184979,96.215033 C73.9693269,96.215033 72.2875593,95.7523244 71.2731446,94.8268935 C70.2587299,93.9014625 69.7515301,92.3887615 69.7515301,90.288745 C69.7515301,88.4022896 70.2320352,86.9696727 71.1930596,85.9908515 C72.1540841,85.0120303 73.5600062,84.522627 75.4108682,84.522627 L76.3184979,84.522627 L76.3184979,44.6937008 L75.4108682,44.6937008 C73.5600062,44.6937008 72.1540841,44.1953993 71.1930596,43.1987813 C70.2320352,42.2021633 69.7515301,40.7428518 69.7515301,38.8208028 C69.7515301,36.7563799 70.2676281,35.2525771 71.2998396,34.3093494 C72.3320511,33.3661217 74.0049204,32.8945149 76.3184979,32.8945149 L100.877889,32.8945149 C108.388118,32.8945149 114.09189,34.3538264 117.989378,37.2724934 C121.886867,40.1911603 123.835581,44.4623161 123.835581,50.0860889 C123.835581,52.8623819 123.239399,55.3093982 122.047017,57.4272114 C120.854635,59.5450246 119.083885,61.2801816 116.734714,62.6327346 L116.734714,62.6327346 Z M89.5058233,44.3733609 L89.5058233,57.8276363 L96.7134708,57.8276363 C101.091471,57.8276363 104.179161,57.3115383 105.976633,56.2793268 C107.774104,55.2471153 108.672827,53.50306 108.672827,51.0471086 C108.672827,48.7335312 107.863087,47.0428653 106.243583,45.9750604 C104.624078,44.9072554 101.999097,44.3733609 98.3685602,44.3733609 L89.5058233,44.3733609 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/new-button": {
"title": "$:/core/images/new-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M56,72 L8.00697327,72 C3.59075293,72 0,68.418278 0,64 C0,59.5907123 3.58484404,56 8.00697327,56 L56,56 L56,8.00697327 C56,3.59075293 59.581722,0 64,0 C68.4092877,0 72,3.58484404 72,8.00697327 L72,56 L119.993027,56 C124.409247,56 128,59.581722 128,64 C128,68.4092877 124.415156,72 119.993027,72 L72,72 L72,119.993027 C72,124.409247 68.418278,128 64,128 C59.5907123,128 56,124.415156 56,119.993027 L56,72 L56,72 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/new-here-button": {
"title": "$:/core/images/new-here-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-new-here-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n \t<g transform=\"translate(52.233611, 64.389922) rotate(75.000000) translate(-52.233611, -64.389922) translate(-7.734417, 3.702450)\">\n\t <path d=\"M18.9270186,45.959338 L18.9080585,49.6521741 C18.8884833,53.4648378 21.0574548,58.7482162 23.7526408,61.4434022 L78.5671839,116.257945 C81.2617332,118.952495 85.6348701,118.950391 88.3334363,116.251825 L115.863237,88.7220241 C118.555265,86.0299959 118.564544,81.6509578 115.869358,78.9557717 L61.0548144,24.1412286 C58.3602652,21.4466794 53.0787224,19.2788426 49.2595808,19.3006519 L25.9781737,19.4336012 C22.1633003,19.4553862 19.0471195,22.5673232 19.0275223,26.3842526 L18.9871663,34.2443819 C19.0818862,34.255617 19.1779758,34.2665345 19.2754441,34.2771502 C22.6891275,34.6489512 27.0485594,34.2348566 31.513244,33.2285542 C31.7789418,32.8671684 32.075337,32.5211298 32.4024112,32.1940556 C34.8567584,29.7397084 38.3789778,29.0128681 41.4406288,30.0213822 C41.5958829,29.9543375 41.7503946,29.8866669 41.9041198,29.8183808 L42.1110981,30.2733467 C43.1114373,30.6972371 44.0473796,31.3160521 44.8614145,32.1300869 C48.2842088,35.5528813 48.2555691,41.130967 44.7974459,44.5890903 C41.4339531,47.952583 36.0649346,48.0717177 32.6241879,44.9262969 C27.8170558,45.8919233 23.0726921,46.2881596 18.9270186,45.959338 Z\"></path>\n\t <path d=\"M45.4903462,38.8768094 C36.7300141,42.6833154 26.099618,44.7997354 18.1909048,43.9383587 C7.2512621,42.7468685 1.50150083,35.8404432 4.66865776,24.7010202 C7.51507386,14.6896965 15.4908218,6.92103848 24.3842626,4.38423012 C34.1310219,1.60401701 42.4070208,6.15882777 42.4070209,16.3101169 L34.5379395,16.310117 C34.5379394,11.9285862 31.728784,10.3825286 26.5666962,11.8549876 C20.2597508,13.6540114 14.3453742,19.4148216 12.2444303,26.8041943 C10.4963869,32.9523565 12.6250796,35.5092726 19.0530263,36.2093718 C25.5557042,36.9176104 35.0513021,34.9907189 42.7038419,31.5913902 L42.7421786,31.6756595 C44.3874154,31.5384763 47.8846101,37.3706354 45.9274416,38.6772897 L45.9302799,38.6835285 C45.9166992,38.6895612 45.9031139,38.6955897 45.8895238,38.7016142 C45.8389288,38.7327898 45.7849056,38.7611034 45.7273406,38.7863919 C45.6506459,38.8200841 45.571574,38.8501593 45.4903462,38.8768094 Z\"></path>\n </g>\n <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n </g>\n </g>\n</svg>"
},
"$:/core/images/new-image-button": {
"title": "$:/core/images/new-image-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M81.3619177,73.6270062 L97.1875317,46.2162388 C97.91364,44.9585822 97.4824378,43.3533085 96.2260476,42.6279312 L46.2162388,13.7547547 C44.9585822,13.0286463 43.3533085,13.4598485 42.6279312,14.7162388 L30.0575956,36.4886988 L40.0978909,31.2276186 C43.1404959,29.6333041 46.8692155,31.3421319 47.6479264,34.6877101 L51.2545483,52.3903732 L61.1353556,53.2399953 C63.2899974,53.4346096 65.1046382,54.9309951 65.706105,57.0091178 C65.7395572,57.1246982 65.8069154,57.3539875 65.9047035,57.6813669 C66.0696435,58.2335608 66.2581528,58.852952 66.4667073,59.5238092 C67.0618822,61.4383079 67.6960725,63.3742727 68.3393254,65.2021174 C68.5462918,65.7902259 68.7511789,66.3583016 68.953259,66.9034738 C69.5777086,68.5881157 70.1617856,70.0172008 70.6783305,71.110045 C70.9334784,71.6498566 71.1627732,72.0871602 71.4035746,72.5373068 C71.6178999,72.7492946 71.9508843,72.9623307 72.4151452,73.1586945 C73.5561502,73.6412938 75.1990755,73.899146 77.0720271,73.9171651 C77.9355886,73.9254732 78.7819239,73.8832103 79.5638842,73.8072782 C80.0123946,73.7637257 80.3172916,73.7224469 80.4352582,73.7027375 C80.7503629,73.6500912 81.0598053,73.6256267 81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 Z M37.4707881,2.64867269 C38.9217993,0.135447653 42.1388058,-0.723707984 44.6486727,0.725364314 L108.293614,37.4707881 C110.806839,38.9217993 111.665994,42.1388058 110.216922,44.6486727 L73.4714982,108.293614 C72.0204871,110.806839 68.8034805,111.665994 66.2936136,110.216922 L2.64867269,73.4714982 C0.135447653,72.0204871 -0.723707984,68.8034805 0.725364314,66.2936136 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 Z M80.3080975,53.1397764 C82.8191338,54.5895239 86.0299834,53.7291793 87.4797308,51.218143 C88.9294783,48.7071068 88.0691338,45.4962571 85.5580975,44.0465097 C83.0470612,42.5967622 79.8362116,43.4571068 78.3864641,45.968143 C76.9367166,48.4791793 77.7970612,51.6900289 80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 Z M96,112 L88.0070969,112 C83.5881712,112 80,108.418278 80,104 C80,99.5907123 83.5848994,96 88.0070969,96 L96,96 L96,88.0070969 C96,83.5881712 99.581722,80 104,80 C108.409288,80 112,83.5848994 112,88.0070969 L112,96 L119.992903,96 C124.411829,96 128,99.581722 128,104 C128,108.409288 124.415101,112 119.992903,112 L112,112 L112,119.992903 C112,124.411829 108.418278,128 104,128 C99.5907123,128 96,124.415101 96,119.992903 L96,112 L96,112 Z M33.3471097,51.7910932 C40.7754579,59.7394511 42.3564368,62.4818351 40.7958321,65.1848818 C39.2352273,67.8879286 26.9581062,62.8571718 24.7019652,66.7649227 C22.4458242,70.6726735 23.7947046,70.0228006 22.2648667,72.6725575 L41.9944593,84.0634431 C41.9944593,84.0634431 36.3904568,75.8079231 37.7602356,73.4353966 C40.2754811,69.0788636 46.5298923,72.1787882 48.1248275,69.4162793 C50.538989,65.234829 43.0222016,59.7770885 33.3471097,51.7910932 L33.3471097,51.7910932 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/new-journal-button": {
"title": "$:/core/images/new-journal-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-new-journal-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M102.545455,112.818182 L102.545455,124.636364 L102.545455,124.636364 L102.545455,124.636364 C102.545455,125.941761 103.630828,127 104.969697,127 L111.030303,127 C112.369172,127 113.454545,125.941761 113.454545,124.636364 L113.454545,112.818182 L125.575758,112.818182 C126.914626,112.818182 128,111.759982 128,110.454545 L128,104.545455 C128,103.240018 126.914626,102.181818 125.575758,102.181818 L113.454545,102.181818 L113.454545,90.3636364 C113.454545,89.0582 112.369172,88 111.030303,88 L104.969697,88 L104.969697,88 C103.630828,88 102.545455,89.0582 102.545455,90.3636364 L102.545455,102.181818 L90.4242424,102.181818 L90.4242424,102.181818 C89.0853705,102.181818 88,103.240018 88,104.545455 L88,110.454545 L88,110.454545 L88,110.454545 C88,111.759982 89.0853705,112.818182 90.4242424,112.818182 L102.545455,112.818182 Z\"></path>\n <g transform=\"translate(59.816987, 64.316987) rotate(30.000000) translate(-59.816987, -64.316987) translate(20.316987, 12.816987)\">\n <g transform=\"translate(0.000000, 0.000000)\">\n <path d=\"M9.99631148,0 C4.4755011,0 -2.27373675e-13,4.48070044 -2.27373675e-13,9.99759461 L-2.27373675e-13,91.6128884 C-2.27373675e-13,97.1344074 4.46966773,101.610483 9.99631148,101.610483 L68.9318917,101.610483 C74.4527021,101.610483 78.9282032,97.1297826 78.9282032,91.6128884 L78.9282032,9.99759461 C78.9282032,4.47607557 74.4585355,0 68.9318917,0 L9.99631148,0 Z M20.8885263,26 C24.2022348,26 26.8885263,23.3137085 26.8885263,20 C26.8885263,16.6862915 24.2022348,14 20.8885263,14 C17.5748178,14 14.8885263,16.6862915 14.8885263,20 C14.8885263,23.3137085 17.5748178,26 20.8885263,26 Z M57.3033321,25.6783342 C60.6170406,25.6783342 63.3033321,22.9920427 63.3033321,19.6783342 C63.3033321,16.3646258 60.6170406,13.6783342 57.3033321,13.6783342 C53.9896236,13.6783342 51.3033321,16.3646258 51.3033321,19.6783342 C51.3033321,22.9920427 53.9896236,25.6783342 57.3033321,25.6783342 Z\"></path>\n <text font-family=\"Helvetica\" font-size=\"47.1724138\" font-weight=\"bold\" fill=\"#FFFFFF\">\n <tspan x=\"42\" y=\"77.4847912\" text-anchor=\"middle\"><<now \"DD\">></tspan>\n </text>\n </g>\n </g>\n </g>\n</svg>"
},
"$:/core/images/opacity": {
"title": "$:/core/images/opacity",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-opacity tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M102.361773,65 C101.833691,67.051742 101.183534,69.0544767 100.419508,71 L82.5835324,71 C83.7602504,69.1098924 84.7666304,67.1027366 85.581205,65 L102.361773,65 Z M102.834311,63 C103.256674,61.0388326 103.568427,59.0365486 103.762717,57 L87.6555706,57 C87.3692052,59.0609452 86.9083652,61.0660782 86.2884493,63 L102.834311,63 Z M99.5852583,73 C98.6682925,75.0747721 97.6196148,77.0783056 96.4498253,79 L75.8124196,79 C77.8387053,77.2115633 79.6621163,75.1985844 81.2437158,73 L99.5852583,73 Z M95.1689122,81 C93.7449202,83.1155572 92.1695234,85.1207336 90.458251,87 L60.4614747,87 C65.1836162,85.86248 69.5430327,83.794147 73.3347255,81 L95.1689122,81 Z M87.6555706,47 L103.762717,47 C101.246684,20.6269305 79.0321807,0 52,0 C23.281193,0 0,23.281193 0,52 C0,77.2277755 17.9651296,98.2595701 41.8000051,103 L62.1999949,103 C67.8794003,101.870444 73.2255333,99.8158975 78.074754,97 L39,97 L39,95 L81.2493857,95 C83.8589242,93.2215015 86.2981855,91.2116653 88.5376609,89 L39,89 L39,87 L43.5385253,87 C27.7389671,83.1940333 16,68.967908 16,52 C16,32.117749 32.117749,16 52,16 C70.1856127,16 85.2217929,29.4843233 87.6555706,47 Z M87.8767787,49 L103.914907,49 C103.971379,49.9928025 104,50.9930589 104,52 C104,53.0069411 103.971379,54.0071975 103.914907,55 L87.8767787,55 C87.958386,54.0107999 88,53.0102597 88,52 C88,50.9897403 87.958386,49.9892001 87.8767787,49 Z\"></path>\n <path d=\"M76,128 C104.718807,128 128,104.718807 128,76 C128,47.281193 104.718807,24 76,24 C47.281193,24 24,47.281193 24,76 C24,104.718807 47.281193,128 76,128 L76,128 Z M76,112 C95.882251,112 112,95.882251 112,76 C112,56.117749 95.882251,40 76,40 C56.117749,40 40,56.117749 40,76 C40,95.882251 56.117749,112 76,112 L76,112 Z\"></path>\n <path d=\"M37,58 L90,58 L90,62 L37,62 L37,58 L37,58 Z M40,50 L93,50 L93,54 L40,54 L40,50 L40,50 Z M40,42 L93,42 L93,46 L40,46 L40,42 L40,42 Z M32,66 L85,66 L85,70 L32,70 L32,66 L32,66 Z M30,74 L83,74 L83,78 L30,78 L30,74 L30,74 Z M27,82 L80,82 L80,86 L27,86 L27,82 L27,82 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/open-window": {
"title": "$:/core/images/open-window",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-open-window tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M16,112 L104.993898,112 C108.863261,112 112,115.590712 112,120 C112,124.418278 108.858091,128 104.993898,128 L7.00610161,128 C3.13673853,128 0,124.409288 0,120 C0,119.998364 4.30952878e-07,119.996727 1.29273572e-06,119.995091 C4.89579306e-07,119.993456 0,119.99182 0,119.990183 L0,24.0098166 C0,19.586117 3.59071231,16 8,16 C12.418278,16 16,19.5838751 16,24.0098166 L16,112 Z\"></path>\n <path d=\"M96,43.1959595 L96,56 C96,60.418278 99.581722,64 104,64 C108.418278,64 112,60.418278 112,56 L112,24 C112,19.5907123 108.415101,16 103.992903,16 L72.0070969,16 C67.5881712,16 64,19.581722 64,24 C64,28.4092877 67.5848994,32 72.0070969,32 L84.5685425,32 L48.2698369,68.2987056 C45.1421332,71.4264093 45.1434327,76.4904296 48.267627,79.614624 C51.3854642,82.7324612 56.4581306,82.7378289 59.5835454,79.6124141 L96,43.1959595 Z M32,7.9992458 C32,3.58138434 35.5881049,0 39.9992458,0 L120.000754,0 C124.418616,0 128,3.5881049 128,7.9992458 L128,88.0007542 C128,92.4186157 124.411895,96 120.000754,96 L39.9992458,96 C35.5813843,96 32,92.4118951 32,88.0007542 L32,7.9992458 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/options-button": {
"title": "$:/core/images/options-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-options-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M110.48779,76.0002544 C109.354214,80.4045063 107.611262,84.5641217 105.354171,88.3838625 L105.354171,88.3838625 L112.07833,95.1080219 C115.20107,98.2307613 115.210098,103.299824 112.089164,106.420759 L106.420504,112.089418 C103.301049,115.208874 98.2346851,115.205502 95.1077675,112.078585 L88.3836082,105.354425 C84.5638673,107.611516 80.4042519,109.354468 76,110.488045 L76,110.488045 L76,119.993281 C76,124.409501 72.4220153,128.000254 68.0083475,128.000254 L59.9916525,128.000254 C55.5800761,128.000254 52,124.41541 52,119.993281 L52,110.488045 C47.5957481,109.354468 43.4361327,107.611516 39.6163918,105.354425 L32.8922325,112.078585 C29.7694931,115.201324 24.7004301,115.210353 21.5794957,112.089418 L15.9108363,106.420759 C12.7913807,103.301303 12.7947522,98.2349395 15.9216697,95.1080219 L22.6458291,88.3838625 C20.3887383,84.5641217 18.6457859,80.4045063 17.5122098,76.0002544 L8.00697327,76.0002544 C3.59075293,76.0002544 2.19088375e-16,72.4222697 4.89347582e-16,68.0086019 L9.80228577e-16,59.9919069 C1.25035972e-15,55.5803305 3.58484404,52.0002544 8.00697327,52.0002544 L17.5122098,52.0002544 C18.6457859,47.5960025 20.3887383,43.4363871 22.6458291,39.6166462 L15.9216697,32.8924868 C12.7989304,29.7697475 12.7899019,24.7006845 15.9108363,21.5797501 L21.5794957,15.9110907 C24.6989513,12.7916351 29.7653149,12.7950065 32.8922325,15.9219241 L39.6163918,22.6460835 C43.4361327,20.3889927 47.5957481,18.6460403 52,17.5124642 L52,8.00722764 C52,3.5910073 55.5779847,0.000254375069 59.9916525,0.000254375069 L68.0083475,0.000254375069 C72.4199239,0.000254375069 76,3.58509841 76,8.00722764 L76,17.5124642 C80.4042519,18.6460403 84.5638673,20.3889927 88.3836082,22.6460835 L95.1077675,15.9219241 C98.2305069,12.7991848 103.29957,12.7901562 106.420504,15.9110907 L112.089164,21.5797501 C115.208619,24.6992057 115.205248,29.7655693 112.07833,32.8924868 L105.354171,39.6166462 L105.354171,39.6166462 C107.611262,43.4363871 109.354214,47.5960025 110.48779,52.0002544 L119.993027,52.0002544 C124.409247,52.0002544 128,55.5782391 128,59.9919069 L128,68.0086019 C128,72.4201783 124.415156,76.0002544 119.993027,76.0002544 L110.48779,76.0002544 L110.48779,76.0002544 Z M64,96.0002544 C81.673112,96.0002544 96,81.6733664 96,64.0002544 C96,46.3271424 81.673112,32.0002544 64,32.0002544 C46.326888,32.0002544 32,46.3271424 32,64.0002544 C32,81.6733664 46.326888,96.0002544 64,96.0002544 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/paint": {
"title": "$:/core/images/paint",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-paint tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M83.5265806,76.1907935 C90.430962,69.2864121 91.8921169,59.0000433 87.9100453,50.6642209 L125.812763,12.7615036 C128.732035,9.84223095 128.72611,5.10322984 125.812796,2.18991592 C122.893542,-0.729338085 118.161775,-0.730617045 115.241209,2.18994966 L77.3384914,40.092667 C69.002669,36.1105954 58.7163002,37.5717503 51.8119188,44.4761317 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 Z M80.8836921,78.8336819 L49.1690303,47.1190201 C49.1690303,47.1190201 8.50573364,81.242543 0,80.2820711 C0,80.2820711 3.78222974,85.8744423 6.82737483,88.320684 C20.8514801,82.630792 44.1526049,63.720771 44.1526049,63.720771 L44.8144806,64.3803375 C44.8144806,64.3803375 19.450356,90.2231043 9.18040433,92.0477601 C10.4017154,93.4877138 13.5343883,96.1014812 15.4269991,97.8235871 C20.8439164,96.3356979 50.1595367,69.253789 50.1595367,69.253789 L50.8214124,69.9133555 L18.4136144,100.936036 L23.6993903,106.221812 L56.1060358,75.2002881 L56.7679115,75.8598546 C56.7679115,75.8598546 28.9040131,106.396168 28.0841366,108.291555 C28.0841366,108.291555 34.1159238,115.144621 35.6529617,116.115796 C36.3545333,113.280171 63.5365402,82.6307925 63.5365402,82.6307925 L64.1984159,83.290359 C64.1984159,83.290359 43.6013016,107.04575 39.2343772,120.022559 C42.443736,123.571575 46.7339155,125.159692 50.1595362,126.321151 C47.9699978,114.504469 80.8836921,78.8336819 80.8836921,78.8336819 L80.8836921,78.8336819 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/palette": {
"title": "$:/core/images/palette",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-palette tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M80.2470434,39.1821571 C75.0645698,38.2680897 69.6261555,37.7814854 64.0193999,37.7814854 C28.6624616,37.7814854 0,57.1324214 0,81.0030106 C0,90.644534 4.67604329,99.5487133 12.5805659,106.738252 C23.5031767,91.1899067 26.3405471,72.3946229 36.8885698,63.5622337 C52.0716764,50.8486559 63.4268694,55.7343343 63.4268694,55.7343343 L80.2470434,39.1821571 Z M106.781666,48.8370714 C119.830962,56.749628 128.0388,68.229191 128.0388,81.0030106 C128.0388,90.3534932 128.557501,98.4142085 116.165191,106.082518 C105.367708,112.763955 112.341384,99.546808 104.321443,95.1851533 C96.3015017,90.8234987 84.3749007,96.492742 86.1084305,103.091059 C89.3087234,115.272303 105.529892,114.54645 92.4224435,119.748569 C79.3149955,124.950687 74.2201582,124.224536 64.0193999,124.224536 C56.1979176,124.224536 48.7040365,123.277578 41.7755684,121.544216 C51.620343,117.347916 69.6563669,109.006202 75.129737,102.088562 C82.7876655,92.4099199 87.3713218,80.0000002 83.3235694,72.4837191 C83.1303943,72.1250117 94.5392656,60.81569 106.781666,48.8370714 Z M1.13430476,123.866563 C0.914084026,123.867944 0.693884185,123.868637 0.473712455,123.868637 C33.9526848,108.928928 22.6351223,59.642592 59.2924543,59.6425917 C59.6085574,61.0606542 59.9358353,62.5865065 60.3541977,64.1372318 C34.4465025,59.9707319 36.7873124,112.168427 1.13429588,123.866563 L1.13430476,123.866563 Z M1.84669213,123.859694 C40.7185279,123.354338 79.9985412,101.513051 79.9985401,79.0466836 C70.7284906,79.0466835 65.9257264,75.5670082 63.1833375,71.1051511 C46.585768,64.1019718 32.81846,116.819636 1.84665952,123.859695 L1.84669213,123.859694 Z M67.1980193,59.8524981 C62.748213,63.9666823 72.0838429,76.2846822 78.5155805,71.1700593 C89.8331416,59.8524993 112.468264,37.2173758 123.785825,25.8998146 C135.103386,14.5822535 123.785825,3.26469247 112.468264,14.5822535 C101.150703,25.8998144 78.9500931,48.9868127 67.1980193,59.8524981 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/permalink-button": {
"title": "$:/core/images/permalink-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-permalink-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M80.4834582,48 L73.0956761,80 L73.0956761,80 L47.5165418,80 L54.9043239,48 L80.4834582,48 Z M84.1773493,32 L89.8007299,7.64246248 C90.7941633,3.33942958 95.0918297,0.64641956 99.3968675,1.64031585 C103.693145,2.63218977 106.385414,6.93288901 105.390651,11.2416793 L100.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L96.9043239,48 L89.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L85.8226507,96 L80.1992701,120.357538 C79.2058367,124.66057 74.9081703,127.35358 70.6031325,126.359684 C66.3068546,125.36781 63.6145865,121.067111 64.6093491,116.758321 L69.401785,96 L43.8226507,96 L38.1992701,120.357538 C37.2058367,124.66057 32.9081703,127.35358 28.6031325,126.359684 C24.3068546,125.36781 21.6145865,121.067111 22.6093491,116.758321 L27.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L31.0956761,80 L38.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L42.1773493,32 L47.8007299,7.64246248 C48.7941633,3.33942958 53.0918297,0.64641956 57.3968675,1.64031585 C61.6931454,2.63218977 64.3854135,6.93288901 63.3906509,11.2416793 L58.598215,32 L84.1773493,32 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/permaview-button": {
"title": "$:/core/images/permaview-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-permaview-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M81.4834582,48 L79.6365127,56 L79.6365127,56 L74.0573784,56 L75.9043239,48 L81.4834582,48 Z M85.1773493,32 L90.8007299,7.64246248 C91.7941633,3.33942958 96.0918297,0.64641956 100.396867,1.64031585 C104.693145,2.63218977 107.385414,6.93288901 106.390651,11.2416793 L101.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L97.9043239,48 L96.0573784,56 L104.000754,56 C108.411895,56 112,59.581722 112,64 C112,68.4092877 108.418616,72 104.000754,72 L92.3634873,72 L90.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L86.8226507,96 L81.1992701,120.357538 C80.2058367,124.66057 75.9081703,127.35358 71.6031325,126.359684 C67.3068546,125.36781 64.6145865,121.067111 65.6093491,116.758321 L70.401785,96 L64.8226507,96 L59.1992701,120.357538 C58.2058367,124.66057 53.9081703,127.35358 49.6031325,126.359684 C45.3068546,125.36781 42.6145865,121.067111 43.6093491,116.758321 L48.401785,96 L42.8226507,96 L37.1992701,120.357538 C36.2058367,124.66057 31.9081703,127.35358 27.6031325,126.359684 C23.3068546,125.36781 20.6145865,121.067111 21.6093491,116.758321 L26.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L30.0956761,80 L31.9426216,72 L23.9992458,72 C19.5881049,72 16,68.418278 16,64 C16,59.5907123 19.5813843,56 23.9992458,56 L35.6365127,56 L37.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L41.1773493,32 L46.8007299,7.64246248 C47.7941633,3.33942958 52.0918297,0.64641956 56.3968675,1.64031585 C60.6931454,2.63218977 63.3854135,6.93288901 62.3906509,11.2416793 L57.598215,32 L63.1773493,32 L68.8007299,7.64246248 C69.7941633,3.33942958 74.0918297,0.64641956 78.3968675,1.64031585 C82.6931454,2.63218977 85.3854135,6.93288901 84.3906509,11.2416793 L79.598215,32 L85.1773493,32 Z M53.9043239,48 L52.0573784,56 L57.6365127,56 L59.4834582,48 L53.9043239,48 Z M75.9426216,72 L74.0956761,80 L74.0956761,80 L68.5165418,80 L70.3634873,72 L75.9426216,72 L75.9426216,72 Z M48.3634873,72 L46.5165418,80 L52.0956761,80 L53.9426216,72 L48.3634873,72 L48.3634873,72 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/picture": {
"title": "$:/core/images/picture",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-picture tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M112,68.2332211 L112,20.0027785 C112,17.7898769 110.207895,16 107.997221,16 L20.0027785,16 C17.7898769,16 16,17.792105 16,20.0027785 L16,58.312373 L25.2413115,43.7197989 C28.041793,39.297674 34.2643908,38.7118128 37.8410347,42.5335275 L56.0882845,63.1470817 L69.7748997,56.7400579 C72.766567,55.3552503 76.3013751,55.9473836 78.678437,58.2315339 C78.8106437,58.3585731 79.0742301,58.609836 79.4527088,58.9673596 C80.0910923,59.570398 80.8117772,60.2441563 81.598127,60.9705595 C83.8422198,63.043576 86.1541548,65.1151944 88.3956721,67.0372264 C89.1168795,67.6556396 89.8200801,68.2492007 90.5021258,68.8146755 C92.6097224,70.5620551 94.4693308,72.0029474 95.9836366,73.0515697 C96.7316295,73.5695379 97.3674038,73.9719282 98.0281481,74.3824999 C98.4724987,74.4989557 99.0742374,74.5263881 99.8365134,74.4317984 C101.709944,74.1993272 104.074502,73.2878514 106.559886,71.8846196 C107.705822,71.2376318 108.790494,70.5370325 109.764561,69.8410487 C110.323259,69.4418522 110.694168,69.1550757 110.834827,69.0391868 C111.210545,68.7296319 111.600264,68.4615815 112,68.2332211 L112,68.2332211 Z M0,8.00697327 C0,3.58484404 3.59075293,0 8.00697327,0 L119.993027,0 C124.415156,0 128,3.59075293 128,8.00697327 L128,119.993027 C128,124.415156 124.409247,128 119.993027,128 L8.00697327,128 C3.58484404,128 0,124.409247 0,119.993027 L0,8.00697327 L0,8.00697327 Z M95,42 C99.418278,42 103,38.418278 103,34 C103,29.581722 99.418278,26 95,26 C90.581722,26 87,29.581722 87,34 C87,38.418278 90.581722,42 95,42 L95,42 Z M32,76 C47.8587691,80.8294182 52.0345556,83.2438712 52.0345556,88 C52.0345556,92.7561288 32,95.4712486 32,102.347107 C32,109.222965 33.2849191,107.337637 33.2849191,112 L67.999999,112 C67.999999,112 54.3147136,105.375255 54.3147136,101.200691 C54.3147136,93.535181 64.9302432,92.860755 64.9302432,88 C64.9302432,80.6425555 50.8523779,79.167282 32,76 L32,76 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/plugin-generic-language": {
"title": "$:/core/images/plugin-generic-language",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M61.2072232,68.1369825 C56.8829239,70.9319564 54.2082892,74.793177 54.2082892,79.0581634 C54.2082892,86.9638335 63.3980995,93.4821994 75.2498076,94.3940006 C77.412197,98.2964184 83.8475284,101.178858 91.5684735,101.403106 C86.4420125,100.27851 82.4506393,97.6624107 80.9477167,94.3948272 C92.8046245,93.4861461 102,86.9662269 102,79.0581634 C102,70.5281905 91.3014611,63.6132813 78.1041446,63.6132813 C71.5054863,63.6132813 65.5315225,65.3420086 61.2072232,68.1369825 Z M74.001066,53.9793443 C69.6767667,56.7743182 63.7028029,58.5030456 57.1041446,58.5030456 C54.4851745,58.5030456 51.9646095,58.2307276 49.6065315,57.7275105 C46.2945155,59.9778212 41.2235699,61.4171743 35.5395922,61.4171743 C35.4545771,61.4171743 35.3696991,61.4168523 35.2849622,61.4162104 C39.404008,60.5235193 42.7961717,58.6691298 44.7630507,56.286533 C37.8379411,53.5817651 33.2082892,48.669413 33.2082892,43.0581634 C33.2082892,34.5281905 43.9068281,27.6132812 57.1041446,27.6132812 C70.3014611,27.6132812 81,34.5281905 81,43.0581634 C81,47.3231498 78.3253653,51.1843704 74.001066,53.9793443 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/plugin-generic-plugin": {
"title": "$:/core/images/plugin-generic-plugin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M40.3972881,76.4456988 L40.3972881,95.3404069 L54.5170166,95.3404069 L54.5170166,95.3404069 C54.5165526,95.3385183 54.516089,95.3366295 54.515626,95.3347404 C54.6093153,95.3385061 54.7034848,95.3404069 54.7980982,95.3404069 C58.6157051,95.3404069 61.710487,92.245625 61.710487,88.4280181 C61.710487,86.6197822 61.01617,84.9737128 59.8795929,83.7418666 L59.8795929,83.7418666 C59.8949905,83.7341665 59.9104102,83.7265043 59.925852,83.7188798 C58.8840576,82.5086663 58.2542926,80.9336277 58.2542926,79.2114996 C58.2542926,75.3938927 61.3490745,72.2991108 65.1666814,72.2991108 C68.9842884,72.2991108 72.0790703,75.3938927 72.0790703,79.2114996 C72.0790703,81.1954221 71.2432806,82.9841354 69.9045961,84.2447446 L69.9045961,84.2447446 C69.9333407,84.2629251 69.9619885,84.281245 69.9905383,84.2997032 L69.9905383,84.2997032 C69.1314315,85.4516923 68.6228758,86.8804654 68.6228758,88.4280181 C68.6228758,91.8584969 71.1218232,94.7053153 74.3986526,95.2474079 C74.3913315,95.2784624 74.3838688,95.3094624 74.3762652,95.3404069 L95.6963988,95.3404069 L95.6963988,75.5678578 L95.6963988,75.5678578 C95.6466539,75.5808558 95.5967614,75.5934886 95.5467242,75.6057531 C95.5504899,75.5120637 95.5523907,75.4178943 95.5523907,75.3232809 C95.5523907,71.505674 92.4576088,68.4108921 88.6400019,68.4108921 C86.831766,68.4108921 85.1856966,69.105209 83.9538504,70.2417862 L83.9538504,70.2417862 C83.9461503,70.2263886 83.938488,70.2109688 83.9308636,70.1955271 C82.7206501,71.2373215 81.1456115,71.8670865 79.4234834,71.8670865 C75.6058765,71.8670865 72.5110946,68.7723046 72.5110946,64.9546976 C72.5110946,61.1370907 75.6058765,58.0423088 79.4234834,58.0423088 C81.4074059,58.0423088 83.1961192,58.8780985 84.4567284,60.2167829 L84.4567284,60.2167829 C84.4749089,60.1880383 84.4932288,60.1593906 84.511687,60.1308407 L84.511687,60.1308407 C85.6636761,60.9899475 87.0924492,61.4985032 88.6400019,61.4985032 C92.0704807,61.4985032 94.9172991,58.9995558 95.4593917,55.7227265 C95.538755,55.7414363 95.6177614,55.761071 95.6963988,55.7816184 L95.6963988,40.0412962 L74.3762652,40.0412962 L74.3762652,40.0412962 C74.3838688,40.0103516 74.3913315,39.9793517 74.3986526,39.9482971 L74.3986526,39.9482971 C71.1218232,39.4062046 68.6228758,36.5593862 68.6228758,33.1289073 C68.6228758,31.5813547 69.1314315,30.1525815 69.9905383,29.0005925 C69.9619885,28.9821342 69.9333407,28.9638143 69.9045961,28.9456339 C71.2432806,27.6850247 72.0790703,25.8963113 72.0790703,23.9123888 C72.0790703,20.0947819 68.9842884,17 65.1666814,17 C61.3490745,17 58.2542926,20.0947819 58.2542926,23.9123888 C58.2542926,25.6345169 58.8840576,27.2095556 59.925852,28.419769 L59.925852,28.419769 C59.9104102,28.4273935 59.8949905,28.4350558 59.8795929,28.4427558 C61.01617,29.674602 61.710487,31.3206715 61.710487,33.1289073 C61.710487,36.9465143 58.6157051,40.0412962 54.7980982,40.0412962 C54.7034848,40.0412962 54.6093153,40.0393953 54.515626,40.0356296 L54.515626,40.0356296 C54.516089,40.0375187 54.5165526,40.0394075 54.5170166,40.0412962 L40.3972881,40.0412962 L40.3972881,52.887664 L40.3972881,52.887664 C40.4916889,53.3430132 40.5412962,53.8147625 40.5412962,54.2980982 C40.5412962,58.1157051 37.4465143,61.210487 33.6289073,61.210487 C32.0813547,61.210487 30.6525815,60.7019313 29.5005925,59.8428245 C29.4821342,59.8713744 29.4638143,59.9000221 29.4456339,59.9287667 C28.1850247,58.5900823 26.3963113,57.7542926 24.4123888,57.7542926 C20.5947819,57.7542926 17.5,60.8490745 17.5,64.6666814 C17.5,68.4842884 20.5947819,71.5790703 24.4123888,71.5790703 C26.134517,71.5790703 27.7095556,70.9493053 28.919769,69.9075109 L28.919769,69.9075109 C28.9273935,69.9229526 28.9350558,69.9383724 28.9427558,69.95377 C30.174602,68.8171928 31.8206715,68.1228758 33.6289073,68.1228758 C37.4465143,68.1228758 40.5412962,71.2176578 40.5412962,75.0352647 C40.5412962,75.5186004 40.4916889,75.9903496 40.3972881,76.4456988 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/plugin-generic-theme": {
"title": "$:/core/images/plugin-generic-theme",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M29.4078519,91.4716406 L51.4693474,69.4101451 L51.4646675,69.4054652 C50.5969502,68.5377479 50.5929779,67.1348725 51.4693474,66.2585029 C52.3396494,65.3882009 53.7499654,65.3874786 54.6163097,66.2538229 L64.0805963,75.7181095 C64.9483136,76.5858268 64.9522859,77.9887022 64.0759163,78.8650718 C63.2056143,79.7353737 61.7952984,79.736096 60.9289541,78.8697517 L60.9242741,78.8650718 L60.9242741,78.8650718 L38.8627786,100.926567 C36.2518727,103.537473 32.0187578,103.537473 29.4078519,100.926567 C26.796946,98.3156614 26.796946,94.0825465 29.4078519,91.4716406 Z M60.8017407,66.3810363 C58.3659178,63.6765806 56.3370667,61.2899536 54.9851735,59.5123615 C48.1295381,50.4979488 44.671561,55.2444054 40.7586738,59.5123614 C36.8457866,63.7803174 41.789473,67.2384487 38.0759896,70.2532832 C34.3625062,73.2681177 34.5917646,74.3131575 28.3243876,68.7977024 C22.0570105,63.2822473 21.6235306,61.7636888 24.5005999,58.6166112 C27.3776691,55.4695337 29.7823103,60.4247912 35.6595047,54.8320442 C41.5366991,49.2392972 36.5996215,44.2825646 36.5996215,44.2825646 C36.5996215,44.2825646 48.8365511,19.267683 65.1880231,21.1152173 C81.5394952,22.9627517 59.0022276,18.7228947 53.3962199,38.3410355 C50.9960082,46.7405407 53.8429162,44.7613399 58.3941742,48.3090467 C59.7875202,49.3951602 64.4244828,52.7100463 70.1884353,56.9943417 L90.8648751,36.3179019 L92.4795866,31.5515482 L100.319802,26.8629752 L103.471444,30.0146174 L98.782871,37.8548326 L94.0165173,39.4695441 L73.7934912,59.6925702 C86.4558549,69.2403631 102.104532,81.8392557 102.104532,86.4016913 C102.104533,93.6189834 99.0337832,97.9277545 92.5695848,95.5655717 C87.8765989,93.8506351 73.8015497,80.3744087 63.8173444,69.668717 L60.9242741,72.5617873 L57.7726319,69.4101451 L60.8017407,66.3810363 L60.8017407,66.3810363 Z M63.9533761,1.42108547e-13 L118.512977,32 L118.512977,96 L63.9533761,128 L9.39377563,96 L9.39377563,32 L63.9533761,1.42108547e-13 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/preview-closed": {
"title": "$:/core/images/preview-closed",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-preview-closed tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M0.0881363238,64 C-0.210292223,65.8846266 0.249135869,67.8634737 1.4664206,69.4579969 C16.2465319,88.8184886 39.1692554,100.414336 64,100.414336 C88.8307446,100.414336 111.753468,88.8184886 126.533579,69.4579969 C127.750864,67.8634737 128.210292,65.8846266 127.911864,64 C110.582357,78.4158332 88.3036732,87.0858436 64,87.0858436 C39.6963268,87.0858436 17.4176431,78.4158332 0.0881363238,64 Z\"></path>\n <rect x=\"62\" y=\"96\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(80.000000, 101.000000) rotate(-5.000000) translate(-80.000000, -101.000000) \" x=\"78\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(48.000000, 101.000000) rotate(-355.000000) translate(-48.000000, -101.000000) \" x=\"46\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(32.000000, 96.000000) rotate(-350.000000) translate(-32.000000, -96.000000) \" x=\"30\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(96.000000, 96.000000) rotate(-10.000000) translate(-96.000000, -96.000000) \" x=\"94\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(112.000000, 88.000000) rotate(-20.000000) translate(-112.000000, -88.000000) \" x=\"110\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(16.000000, 88.000000) rotate(-340.000000) translate(-16.000000, -88.000000) \" x=\"14\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n </g>\n</svg>"
},
"$:/core/images/preview-open": {
"title": "$:/core/images/preview-open",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-preview-open tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64.1099282,99.5876785 C39.2791836,99.5876785 16.3564602,87.9918313 1.57634884,68.6313396 C-0.378878622,66.070184 -0.378878622,62.5174945 1.57634884,59.9563389 C16.3564602,40.5958472 39.2791836,29 64.1099282,29 C88.9406729,29 111.863396,40.5958472 126.643508,59.9563389 C128.598735,62.5174945 128.598735,66.070184 126.643508,68.6313396 C111.863396,87.9918313 88.9406729,99.5876785 64.1099282,99.5876785 Z M110.213805,67.5808331 C111.654168,66.0569335 111.654168,63.9430665 110.213805,62.4191669 C99.3257042,50.8995835 82.4391647,44 64.1470385,44 C45.8549124,44 28.9683729,50.8995835 18.0802717,62.4191669 C16.6399094,63.9430665 16.6399094,66.0569335 18.0802717,67.5808331 C28.9683729,79.1004165 45.8549124,86 64.1470385,86 C82.4391647,86 99.3257042,79.1004165 110.213805,67.5808331 Z\"></path>\n <path d=\"M63.5,88 C76.4786916,88 87,77.4786916 87,64.5 C87,51.5213084 76.4786916,41 63.5,41 C50.5213084,41 40,51.5213084 40,64.5 C40,77.4786916 50.5213084,88 63.5,88 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/print-button": {
"title": "$:/core/images/print-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M112,71 L112,30.5 L111.96811,30.5 L111.96811,30.5 C111.932942,28.4998414 111.151676,26.510538 109.625176,24.9840387 L86.9982489,2.35711116 C85.3482153,0.707077645 83.1589869,-0.071534047 81,0.0201838424 L81,0 L23.9992458,0 C19.5808867,0 16,3.58213437 16,8.00092105 L16,71 L24,71 L24,8 L81,8 L81,22.4996539 C81,26.9216269 84.5818769,30.5 89.0003461,30.5 L104,30.5 L104,71 L112,71 Z\"></path>\n <rect x=\"32\" y=\"36\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"52\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"20\" width=\"40\" height=\"8\" rx=\"4\"></rect>\n <path d=\"M0,80.0054195 C0,71.1658704 7.15611005,64 16.0008841,64 L111.999116,64 C120.83616,64 128,71.1553215 128,80.0054195 L128,111.99458 C128,120.83413 120.84389,128 111.999116,128 L16.0008841,128 C7.16383982,128 0,120.844679 0,111.99458 L0,80.0054195 Z M104,96 C108.418278,96 112,92.418278 112,88 C112,83.581722 108.418278,80 104,80 C99.581722,80 96,83.581722 96,88 C96,92.418278 99.581722,96 104,96 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/quote": {
"title": "$:/core/images/quote",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-quote tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M51.2188077,117.712501 L51.2188077,62.1993386 L27.4274524,62.1993386 C27.4274524,53.3075754 29.1096526,45.797753 32.4741035,39.669646 C35.8385544,33.541539 42.0867267,28.9154883 51.2188077,25.7913554 L51.2188077,2 C43.7689521,2.96127169 36.8599155,5.18417913 30.4914905,8.668789 C24.1230656,12.1533989 18.6559149,16.5391352 14.0898743,21.8261295 C9.52383382,27.1131238 5.97919764,33.2411389 3.45585945,40.2103586 C0.932521268,47.1795784 -0.208971741,54.6293222 0.0313461819,62.5598136 L0.0313461819,117.712501 L51.2188077,117.712501 Z M128,117.712501 L128,62.1993386 L104.208645,62.1993386 C104.208645,53.3075754 105.890845,45.797753 109.255296,39.669646 C112.619747,33.541539 118.867919,28.9154883 128,25.7913554 L128,2 C120.550144,2.96127169 113.641108,5.18417913 107.272683,8.668789 C100.904258,12.1533989 95.4371072,16.5391352 90.8710666,21.8261295 C86.3050261,27.1131238 82.7603899,33.2411389 80.2370517,40.2103586 C77.7137136,47.1795784 76.5722206,54.6293222 76.8125385,62.5598136 L76.8125385,117.712501 L128,117.712501 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/refresh-button": {
"title": "$:/core/images/refresh-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-refresh-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M106.369002,39.4325143 C116.529932,60.3119371 112.939592,86.1974934 95.5979797,103.539105 C73.7286194,125.408466 38.2713806,125.408466 16.4020203,103.539105 C-5.46734008,81.6697449 -5.46734008,46.2125061 16.4020203,24.3431458 C19.5262146,21.2189514 24.5915344,21.2189514 27.7157288,24.3431458 C30.8399231,27.4673401 30.8399231,32.5326599 27.7157288,35.6568542 C12.0947571,51.2778259 12.0947571,76.6044251 27.7157288,92.2253967 C43.3367004,107.846368 68.6632996,107.846368 84.2842712,92.2253967 C97.71993,78.7897379 99.5995262,58.1740623 89.9230597,42.729491 L83.4844861,54.9932839 C81.4307001,58.9052072 76.5945372,60.4115251 72.682614,58.3577391 C68.7706907,56.3039532 67.2643728,51.4677903 69.3181587,47.555867 L84.4354914,18.7613158 C86.4966389,14.8353707 91.3577499,13.3347805 95.273202,15.415792 L124.145886,30.7612457 C128.047354,32.8348248 129.52915,37.6785572 127.455571,41.5800249 C125.381992,45.4814927 120.53826,46.9632892 116.636792,44.8897102 L106.369002,39.4325143 Z M98.1470904,27.0648707 C97.9798954,26.8741582 97.811187,26.6843098 97.6409651,26.4953413 L98.6018187,26.1987327 L98.1470904,27.0648707 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/right-arrow": {
"title": "$:/core/images/right-arrow",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-right-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path d=\"M80.3563798,109.353315 C78.9238993,110.786918 76.9450203,111.675144 74.7592239,111.675144 L-4.40893546,111.675144 C-8.77412698,111.675144 -12.3248558,108.130732 -12.3248558,103.758478 C-12.3248558,99.3951199 -8.78077754,95.8418109 -4.40893546,95.8418109 L66.8418109,95.8418109 L66.8418109,24.5910645 C66.8418109,20.225873 70.3862233,16.6751442 74.7584775,16.6751442 C79.1218352,16.6751442 82.6751442,20.2192225 82.6751442,24.5910645 L82.6751442,103.759224 C82.6751442,105.941695 81.7891419,107.920575 80.3566508,109.353886 Z\" transform=\"translate(35.175144, 64.175144) rotate(-45.000000) translate(-35.175144, -64.175144) \"></path>\n</svg>"
},
"$:/core/images/rotate-left": {
"title": "$:/core/images/rotate-left",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-rotate-left tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect x=\"48\" y=\"96\" width=\"80\" height=\"32\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 0 1-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 1 1-5.657 5.657L49.172 43.142a4 4 0 0 1 0-5.657l11.313-11.313a4 4 0 1 1 5.657 5.656l-4.821 4.822z\"/></g></svg>"
},
"$:/core/images/save-button": {
"title": "$:/core/images/save-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M120.78304,34.329058 C125.424287,43.1924006 128.049406,53.2778608 128.049406,63.9764502 C128.049406,99.3226742 99.3956295,127.97645 64.0494055,127.97645 C28.7031816,127.97645 0.0494055385,99.3226742 0.0494055385,63.9764502 C0.0494055385,28.6302262 28.7031816,-0.0235498012 64.0494055,-0.0235498012 C82.8568763,-0.0235498012 99.769563,8.08898558 111.479045,21.0056358 L114.159581,18.3250998 C117.289194,15.1954866 122.356036,15.1939641 125.480231,18.3181584 C128.598068,21.4359957 128.601317,26.5107804 125.473289,29.6388083 L120.78304,34.329058 Z M108.72451,46.3875877 C110.870571,51.8341374 112.049406,57.767628 112.049406,63.9764502 C112.049406,90.4861182 90.5590735,111.97645 64.0494055,111.97645 C37.5397375,111.97645 16.0494055,90.4861182 16.0494055,63.9764502 C16.0494055,37.4667822 37.5397375,15.9764502 64.0494055,15.9764502 C78.438886,15.9764502 91.3495036,22.308215 100.147097,32.3375836 L58.9411255,73.5435552 L41.975581,56.5780107 C38.8486152,53.4510448 33.7746915,53.4551552 30.6568542,56.5729924 C27.5326599,59.6971868 27.5372202,64.7670668 30.6618725,67.8917192 L53.279253,90.5090997 C54.8435723,92.073419 56.8951519,92.8541315 58.9380216,92.8558261 C60.987971,92.8559239 63.0389578,92.0731398 64.6049211,90.5071765 L108.72451,46.3875877 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/size": {
"title": "$:/core/images/size",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-size tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path d=\"M92.3431458,26 L83.1715729,35.1715729 C81.6094757,36.73367 81.6094757,39.26633 83.1715729,40.8284271 C84.73367,42.3905243 87.26633,42.3905243 88.8284271,40.8284271 L104.828427,24.8284271 C106.390524,23.26633 106.390524,20.73367 104.828427,19.1715729 L88.8284271,3.17157288 C87.26633,1.60947571 84.73367,1.60947571 83.1715729,3.17157288 C81.6094757,4.73367004 81.6094757,7.26632996 83.1715729,8.82842712 L92.3431457,18 L22,18 C19.790861,18 18,19.790861 18,22 L18,92.3431458 L8.82842712,83.1715729 C7.26632996,81.6094757 4.73367004,81.6094757 3.17157288,83.1715729 C1.60947571,84.73367 1.60947571,87.26633 3.17157288,88.8284271 L19.1715729,104.828427 C20.73367,106.390524 23.26633,106.390524 24.8284271,104.828427 L40.8284271,88.8284271 C42.3905243,87.26633 42.3905243,84.73367 40.8284271,83.1715729 C39.26633,81.6094757 36.73367,81.6094757 35.1715729,83.1715729 L26,92.3431458 L26,22 L22,26 L92.3431458,26 L92.3431458,26 Z M112,52 L112,116 L116,112 L52,112 C49.790861,112 48,113.790861 48,116 C48,118.209139 49.790861,120 52,120 L116,120 C118.209139,120 120,118.209139 120,116 L120,52 C120,49.790861 118.209139,48 116,48 C113.790861,48 112,49.790861 112,52 L112,52 Z\"></path>\n</svg>"
},
"$:/core/images/spiral": {
"title": "$:/core/images/spiral",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-spiral tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"nonzero\">\n <path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074.14-2.64-1.89-4.89-4.52-5.03-2.64-.14-4.89 1.88-5.03 4.52-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01-.02-.015-.054-.045-.094-.088-.06-.064-.12-.145-.17-.244-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"></path>\n </g>\n</svg>"
},
"$:/core/images/stamp": {
"title": "$:/core/images/stamp",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-stamp tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M49.7334301,64 L16.0098166,64 C11.5838751,64 8,67.5829053 8,72.002643 L8,74.4986785 L8,97 L120,97 L120,74.4986785 L120,72.002643 C120,67.5737547 116.413883,64 111.990183,64 L78.2665699,64 C76.502049,60.7519149 75.5,57.0311962 75.5,53.0769231 C75.5,46.6017951 78.1869052,40.7529228 82.5087769,36.5800577 C85.3313113,32.7688808 87,28.0549983 87,22.952183 C87,10.2760423 76.7025492,0 64,0 C51.2974508,0 41,10.2760423 41,22.952183 C41,28.0549983 42.6686887,32.7688808 45.4912231,36.5800577 C49.8130948,40.7529228 52.5,46.6017951 52.5,53.0769231 C52.5,57.0311962 51.497951,60.7519149 49.7334301,64 Z M8,104 L120,104 L120,112 L8,112 L8,104 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/star-filled": {
"title": "$:/core/images/star-filled",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-star-filled tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"nonzero\">\n <path d=\"M61.8361286,96.8228569 L99.1627704,124.110219 C101.883827,126.099427 105.541968,123.420868 104.505636,120.198072 L90.2895569,75.9887263 L89.0292911,79.8977279 L126.314504,52.5528988 C129.032541,50.5595011 127.635256,46.2255025 124.273711,46.2229134 L78.1610486,46.1873965 L81.4604673,48.6032923 L67.1773543,4.41589688 C66.1361365,1.19470104 61.6144265,1.19470104 60.5732087,4.41589688 L46.2900957,48.6032923 L49.5895144,46.1873965 L3.47685231,46.2229134 C0.115307373,46.2255025 -1.28197785,50.5595011 1.43605908,52.5528988 L38.7212719,79.8977279 L37.4610061,75.9887263 L23.2449266,120.198072 C22.2085954,123.420868 25.8667356,126.099427 28.5877926,124.110219 L65.9144344,96.8228569 L61.8361286,96.8228569 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/storyview-classic": {
"title": "$:/core/images/storyview-classic",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-storyview-classic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/storyview-pop": {
"title": "$:/core/images/storyview-pop",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-storyview-pop tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M16.0098166,56 C11.586117,56 8,59.5776607 8,63.9924054 L8,80.0075946 C8,84.4216782 11.5838751,88 16.0098166,88 L111.990183,88 C116.413883,88 120,84.4223393 120,80.0075946 L120,63.9924054 C120,59.5783218 116.416125,56 111.990183,56 L16.0098166,56 L16.0098166,56 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/storyview-zoomin": {
"title": "$:/core/images/storyview-zoomin",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-storyview-zoomin tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.578055 16,24.0085154 L16,71.9914846 C16,76.4144655 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.421945 112,71.9914846 L112,24.0085154 C112,19.5855345 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/strikethrough": {
"title": "$:/core/images/strikethrough",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-strikethrough tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M92.793842,38.7255689 L108.215529,38.7255689 C107.987058,31.985687 106.70193,26.1883331 104.360107,21.3333333 C102.018284,16.4783336 98.8197436,12.4516001 94.7643909,9.25301205 C90.7090382,6.05442399 85.9969032,3.71263572 80.6278447,2.22757697 C75.2587862,0.742518233 69.4328739,0 63.1499331,0 C57.552404,0 52.0977508,0.713959839 46.7858099,2.14190094 C41.473869,3.56984203 36.7331757,5.74027995 32.5635877,8.65327979 C28.3939997,11.5662796 25.0526676,15.2788708 22.5394913,19.7911647 C20.026315,24.3034585 18.7697456,29.6438781 18.7697456,35.8125837 C18.7697456,41.4101128 19.883523,46.0651309 22.1111111,49.7777778 C24.3386992,53.4904246 27.3087722,56.5176144 31.021419,58.8594378 C34.7340659,61.2012612 38.9321497,63.0861151 43.6157965,64.5140562 C48.2994433,65.9419973 53.068695,67.1985666 57.9236948,68.2838019 C62.7786945,69.3690371 67.5479462,70.4256977 72.231593,71.4538153 C76.9152398,72.4819329 81.1133237,73.8241773 84.8259705,75.480589 C88.5386174,77.1370007 91.5086903,79.2788802 93.7362784,81.9062918 C95.9638666,84.5337035 97.0776439,87.9607107 97.0776439,92.1874163 C97.0776439,96.6425926 96.1637753,100.298067 94.3360107,103.153949 C92.5082461,106.009831 90.109341,108.265944 87.1392236,109.922356 C84.1691061,111.578768 80.827774,112.749662 77.1151272,113.435074 C73.4024803,114.120485 69.7184476,114.463186 66.0629183,114.463186 C61.4935068,114.463186 57.0383974,113.892018 52.6974565,112.749665 C48.3565156,111.607312 44.5582492,109.836692 41.3025435,107.437751 C38.0468378,105.03881 35.4194656,101.983062 33.4203481,98.270415 C31.4212305,94.5577681 30.4216867,90.1312171 30.4216867,84.9906292 L15,84.9906292 C15,92.4159229 16.3422445,98.8415614 19.0267738,104.267738 C21.711303,109.693914 25.3667774,114.149023 29.9933066,117.633199 C34.6198357,121.117376 39.9888137,123.71619 46.1004016,125.429719 C52.2119895,127.143248 58.6947448,128 65.5488621,128 C71.1463912,128 76.7723948,127.343157 82.4270415,126.029451 C88.0816882,124.715745 93.1936407,122.602424 97.7630522,119.689424 C102.332464,116.776425 106.073613,113.006717 108.986613,108.380187 C111.899613,103.753658 113.356091,98.1847715 113.356091,91.6733601 C113.356091,85.6188899 112.242314,80.5926126 110.014726,76.5943775 C107.787137,72.5961424 104.817065,69.2833688 101.104418,66.6559572 C97.3917708,64.0285455 93.193687,61.9437828 88.5100402,60.4016064 C83.8263934,58.85943 79.0571416,57.5171855 74.2021419,56.3748327 C69.3471422,55.2324798 64.5778904,54.1758192 59.8942436,53.2048193 C55.2105968,52.2338193 51.012513,51.0058084 47.2998661,49.5207497 C43.5872193,48.0356909 40.6171463,46.1222786 38.3895582,43.7804552 C36.1619701,41.4386318 35.0481928,38.3828836 35.0481928,34.6131191 C35.0481928,30.6148841 35.8192694,27.273552 37.3614458,24.5890228 C38.9036222,21.9044935 40.9598265,19.762614 43.5301205,18.1633199 C46.1004145,16.5640259 49.041929,15.4216902 52.3547523,14.7362784 C55.6675757,14.0508667 59.0374661,13.708166 62.4645248,13.708166 C70.9179361,13.708166 77.8576257,15.6786952 83.2838019,19.6198126 C88.709978,23.56093 91.8799597,29.9294518 92.793842,38.7255689 L92.793842,38.7255689 Z\"></path>\n <rect x=\"5\" y=\"54\" width=\"118\" height=\"16\"></rect>\n </g>\n</svg>"
},
"$:/core/images/subscript": {
"title": "$:/core/images/subscript",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-subscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,128.411516 L85.3276227,128.411516 C85.3870139,123.24448 86.6342108,118.730815 89.0692508,114.870386 C91.5042907,111.009956 94.8301491,107.654403 99.0469256,104.803624 C101.066227,103.318844 103.174584,101.878629 105.372059,100.482935 C107.569534,99.0872413 109.588805,97.5876355 111.429933,95.9840726 C113.271061,94.3805097 114.785514,92.6433426 115.973338,90.7725192 C117.161163,88.9016958 117.784761,86.7487964 117.844152,84.3137564 C117.844152,83.1853233 117.710524,81.9826691 117.443264,80.7057579 C117.176003,79.4288467 116.656338,78.2410402 115.884252,77.1423026 C115.112166,76.0435651 114.04314,75.123015 112.677142,74.3806248 C111.311144,73.6382345 109.529434,73.267045 107.331959,73.267045 C105.312658,73.267045 103.634881,73.6679297 102.298579,74.4697112 C100.962276,75.2714926 99.8932503,76.3702137 99.0914688,77.7659073 C98.2896874,79.161601 97.6957841,80.8096826 97.3097412,82.7102016 C96.9236982,84.6107206 96.7009845,86.6596869 96.6415933,88.857162 L86.4857457,88.857162 C86.4857457,85.4124713 86.9460207,82.2202411 87.8665846,79.2803758 C88.7871485,76.3405105 90.1679736,73.801574 92.0091014,71.6634901 C93.8502292,69.5254062 96.092214,67.8476295 98.7351233,66.6301095 C101.378033,65.4125895 104.451482,64.8038386 107.955564,64.8038386 C111.756602,64.8038386 114.933984,65.4274371 117.487807,66.6746527 C120.041629,67.9218683 122.105443,69.4957119 123.67931,71.3962309 C125.253178,73.2967499 126.366746,75.3605638 127.02005,77.5877345 C127.673353,79.8149053 128,81.9381095 128,83.9574109 C128,86.4518421 127.613963,88.7086746 126.841877,90.727976 C126.069791,92.7472774 125.03046,94.6032252 123.723854,96.2958749 C122.417247,97.9885247 120.932489,99.5475208 119.269534,100.97291 C117.60658,102.398299 115.884261,103.734582 114.102524,104.981797 C112.320788,106.229013 110.539078,107.416819 108.757341,108.545253 C106.975605,109.673686 105.327523,110.802102 103.813047,111.930535 C102.298571,113.058968 100.977136,114.231927 99.8487031,115.449447 C98.7202699,116.666967 97.9481956,117.958707 97.5324571,119.324705 L127.910914,119.324705 L127.910914,128.411516 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/superscript": {
"title": "$:/core/images/superscript",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-superscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,63.4115159 L85.3276227,63.4115159 C85.3870139,58.2444799 86.6342108,53.7308149 89.0692508,49.8703857 C91.5042907,46.0099565 94.8301491,42.654403 99.0469256,39.8036245 C101.066227,38.318844 103.174584,36.8786285 105.372059,35.4829349 C107.569534,34.0872413 109.588805,32.5876355 111.429933,30.9840726 C113.271061,29.3805097 114.785514,27.6433426 115.973338,25.7725192 C117.161163,23.9016958 117.784761,21.7487964 117.844152,19.3137564 C117.844152,18.1853233 117.710524,16.9826691 117.443264,15.7057579 C117.176003,14.4288467 116.656338,13.2410402 115.884252,12.1423026 C115.112166,11.0435651 114.04314,10.123015 112.677142,9.38062477 C111.311144,8.63823453 109.529434,8.26704499 107.331959,8.26704499 C105.312658,8.26704499 103.634881,8.6679297 102.298579,9.46971115 C100.962276,10.2714926 99.8932503,11.3702137 99.0914688,12.7659073 C98.2896874,14.161601 97.6957841,15.8096826 97.3097412,17.7102016 C96.9236982,19.6107206 96.7009845,21.6596869 96.6415933,23.857162 L86.4857457,23.857162 C86.4857457,20.4124713 86.9460207,17.2202411 87.8665846,14.2803758 C88.7871485,11.3405105 90.1679736,8.80157397 92.0091014,6.6634901 C93.8502292,4.52540622 96.092214,2.84762946 98.7351233,1.63010947 C101.378033,0.412589489 104.451482,-0.196161372 107.955564,-0.196161372 C111.756602,-0.196161372 114.933984,0.427437071 117.487807,1.67465266 C120.041629,2.92186826 122.105443,4.49571195 123.67931,6.39623095 C125.253178,8.29674995 126.366746,10.3605638 127.02005,12.5877345 C127.673353,14.8149053 128,16.9381095 128,18.9574109 C128,21.4518421 127.613963,23.7086746 126.841877,25.727976 C126.069791,27.7472774 125.03046,29.6032252 123.723854,31.2958749 C122.417247,32.9885247 120.932489,34.5475208 119.269534,35.97291 C117.60658,37.3982993 115.884261,38.7345816 114.102524,39.9817972 C112.320788,41.2290128 110.539078,42.4168194 108.757341,43.5452525 C106.975605,44.6736857 105.327523,45.8021019 103.813047,46.9305351 C102.298571,48.0589682 100.977136,49.2319272 99.8487031,50.4494472 C98.7202699,51.6669672 97.9481956,52.9587068 97.5324571,54.3247048 L127.910914,54.3247048 L127.910914,63.4115159 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/tag-button": {
"title": "$:/core/images/tag-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-tag-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M18.1643182,47.6600756 L18.1677196,51.7651887 C18.1708869,55.5878829 20.3581578,60.8623899 23.0531352,63.5573673 L84.9021823,125.406414 C87.5996731,128.103905 91.971139,128.096834 94.6717387,125.396234 L125.766905,94.3010679 C128.473612,91.5943612 128.472063,87.2264889 125.777085,84.5315115 L63.9280381,22.6824644 C61.2305472,19.9849735 55.9517395,17.801995 52.1318769,17.8010313 L25.0560441,17.7942007 C21.2311475,17.7932358 18.1421354,20.8872832 18.1452985,24.7049463 L18.1535504,34.6641936 C18.2481119,34.6754562 18.3439134,34.6864294 18.4409623,34.6971263 C22.1702157,35.1081705 26.9295004,34.6530132 31.806204,33.5444844 C32.1342781,33.0700515 32.5094815,32.6184036 32.9318197,32.1960654 C35.6385117,29.4893734 39.5490441,28.718649 42.94592,29.8824694 C43.0432142,29.8394357 43.1402334,29.7961748 43.2369683,29.7526887 L43.3646982,30.0368244 C44.566601,30.5115916 45.6933052,31.2351533 46.6655958,32.2074439 C50.4612154,36.0030635 50.4663097,42.1518845 46.6769742,45.94122 C43.0594074,49.5587868 37.2914155,49.7181264 33.4734256,46.422636 C28.1082519,47.5454734 22.7987486,48.0186448 18.1643182,47.6600756 Z\"></path>\n <path d=\"M47.6333528,39.5324628 L47.6562932,39.5834939 C37.9670934,43.9391617 26.0718874,46.3819521 17.260095,45.4107025 C5.27267473,44.0894301 -1.02778744,36.4307276 2.44271359,24.0779512 C5.56175386,12.9761516 14.3014034,4.36129832 24.0466405,1.54817001 C34.7269254,-1.53487574 43.7955833,3.51606438 43.7955834,14.7730751 L35.1728168,14.7730752 C35.1728167,9.91428944 32.0946059,8.19982862 26.4381034,9.83267419 C19.5270911,11.8276553 13.046247,18.2159574 10.7440788,26.4102121 C8.82861123,33.2280582 11.161186,36.0634845 18.2047888,36.8398415 C25.3302805,37.6252244 35.7353482,35.4884477 44.1208333,31.7188498 L44.1475077,31.7781871 C44.159701,31.7725635 44.1718402,31.7671479 44.1839238,31.7619434 C45.9448098,31.0035157 50.4503245,38.3109156 47.7081571,39.5012767 C47.6834429,39.512005 47.6585061,39.5223987 47.6333528,39.5324628 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/theme-button": {
"title": "$:/core/images/theme-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-theme-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M55.854113,66.9453198 C54.3299482,65.1432292 53.0133883,63.518995 51.9542746,62.1263761 C40.8899947,47.578055 35.3091807,55.2383404 28.9941893,62.1263758 C22.6791979,69.0144112 30.6577916,74.5954741 24.6646171,79.4611023 C18.6714426,84.3267304 19.0414417,86.0133155 8.92654943,77.1119468 C-1.18834284,68.2105781 -1.88793412,65.7597832 2.7553553,60.6807286 C7.39864472,55.601674 11.2794845,63.5989423 20.7646627,54.5728325 C30.2498409,45.5467226 22.2819131,37.5470737 22.2819131,37.5470737 C22.2819131,37.5470737 42.0310399,-2.82433362 68.4206088,0.157393922 C94.8101776,3.13912147 58.4373806,-3.70356506 49.3898693,27.958066 C45.5161782,41.5139906 50.1107906,38.3197672 57.4560458,44.0453955 C59.1625767,45.3756367 63.8839488,48.777453 70.127165,53.3625321 C63.9980513,59.2416709 58.9704753,64.0315459 55.854113,66.9453198 Z M67.4952439,79.8919946 C83.5082212,96.9282402 105.237121,117.617674 112.611591,120.312493 C123.044132,124.12481 128.000001,117.170903 128,105.522947 C127.999999,98.3705516 104.170675,78.980486 84.0760493,63.7529565 C76.6683337,70.9090328 70.7000957,76.7055226 67.4952439,79.8919946 Z\"></path>\n <path d=\"M58.2852966,138.232794 L58.2852966,88.3943645 C56.318874,88.3923153 54.7254089,86.7952906 54.7254089,84.8344788 C54.7254089,82.8684071 56.3175932,81.2745911 58.2890859,81.2745911 L79.6408336,81.2745911 C81.608998,81.2745911 83.2045105,82.8724076 83.2045105,84.8344788 C83.2045105,86.7992907 81.614366,88.3923238 79.6446228,88.3943645 L79.6446228,88.3943646 L79.6446228,138.232794 C79.6446228,144.131009 74.8631748,148.912457 68.9649597,148.912457 C63.0667446,148.912457 58.2852966,144.131009 58.2852966,138.232794 Z M65.405072,-14.8423767 L72.5248474,-14.8423767 L76.0847351,-0.690681892 L72.5248474,6.51694947 L72.5248474,81.2745911 L65.405072,81.2745911 L65.405072,6.51694947 L61.8451843,-0.690681892 L65.405072,-14.8423767 Z\" transform=\"translate(68.964960, 67.035040) rotate(45.000000) translate(-68.964960, -67.035040) \"></path>\n </g>\n</svg>"
},
"$:/core/images/timestamp-off": {
"title": "$:/core/images/timestamp-off",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-timestamp-off tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10c-2.762 0-5-2.24-5-5-.004-2.756 2.238-5 5-5H66.69c2.762 0 5.002 2.24 5 5 .006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/>\n </g>\n</svg>\n"
},
"$:/core/images/timestamp-on": {
"title": "$:/core/images/timestamp-on",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-timestamp-on tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10c-2.762 0-5-2.24-5-5-.004-2.756 2.238-5 5-5H66.69c2.762 0 5.002 2.24 5 5 .006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178c-2.116 1.775-5.27 1.498-7.045-.613-1.772-2.11-1.498-5.27.616-7.047l9.95-8.348c2.115-1.774 5.27-1.5 7.045.618 1.775 2.108 1.498 5.27-.616 7.043l-9.95 8.348zM102.983 27.178c2.116 1.775 5.27 1.498 7.045-.613 1.772-2.11 1.498-5.27-.616-7.047l-9.95-8.348c-2.114-1.774-5.27-1.5-7.044.618-1.775 2.108-1.498 5.27.616 7.043l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/>\n </g>\n</svg>\n"
},
"$:/core/images/tip": {
"title": "$:/core/images/tip",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-tip tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64,128.241818 C99.346224,128.241818 128,99.5880417 128,64.2418177 C128,28.8955937 99.346224,0.241817675 64,0.241817675 C28.653776,0.241817675 0,28.8955937 0,64.2418177 C0,99.5880417 28.653776,128.241818 64,128.241818 Z M75.9358659,91.4531941 C75.3115438,95.581915 70.2059206,98.8016748 64,98.8016748 C57.7940794,98.8016748 52.6884562,95.581915 52.0641341,91.4531941 C54.3299053,94.0502127 58.8248941,95.8192805 64,95.8192805 C69.1751059,95.8192805 73.6700947,94.0502127 75.9358659,91.4531941 L75.9358659,91.4531941 Z M75.9358659,95.9453413 C75.3115438,100.074062 70.2059206,103.293822 64,103.293822 C57.7940794,103.293822 52.6884562,100.074062 52.0641341,95.9453413 C54.3299053,98.5423599 58.8248941,100.311428 64,100.311428 C69.1751059,100.311428 73.6700947,98.5423599 75.9358659,95.9453413 L75.9358659,95.9453413 Z M75.9358659,100.40119 C75.3115438,104.529911 70.2059206,107.74967 64,107.74967 C57.7940794,107.74967 52.6884562,104.529911 52.0641341,100.40119 C54.3299053,102.998208 58.8248941,104.767276 64,104.767276 C69.1751059,104.767276 73.6700947,102.998208 75.9358659,100.40119 L75.9358659,100.40119 Z M75.9358659,104.893337 C75.3115438,109.022058 70.2059206,112.241818 64,112.241818 C57.7940794,112.241818 52.6884562,109.022058 52.0641341,104.893337 C54.3299053,107.490356 58.8248941,109.259423 64,109.259423 C69.1751059,109.259423 73.6700947,107.490356 75.9358659,104.893337 L75.9358659,104.893337 Z M64.3010456,24.2418177 C75.9193117,24.2418188 88.0000013,32.0619847 88,48.4419659 C87.9999987,64.8219472 75.9193018,71.7540963 75.9193021,83.5755932 C75.9193022,89.4486648 70.0521957,92.8368862 63.9999994,92.8368862 C57.947803,92.8368862 51.9731007,89.8295115 51.9731007,83.5755932 C51.9731007,71.1469799 39.9999998,65.4700602 40,48.4419647 C40.0000002,31.4138691 52.6827796,24.2418166 64.3010456,24.2418177 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/transcludify": {
"title": "$:/core/images/transcludify",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\"><path d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 0 0 2.75-.932 6.762 6.762 0 0 0 2.306-1.907c.651-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 0 0-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 0 0-2.75-1.02C1.36 67.377.591 67.288 0 67.288v-7.806zm24.66 0c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 0 0 2.75-.932 6.762 6.762 0 0 0 2.306-1.907c.65-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 0 0-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 0 0-2.75-1.02c-.946-.177-1.715-.266-2.306-.266v-7.806zm43.965-3.538L80.6 52.041l2.306 7.097-12.063 3.903 7.628 10.378-6.12 4.435-7.63-10.467-7.45 10.201-5.943-4.524 7.628-10.023-12.152-4.17 2.306-7.096 12.064 4.17V43.347h7.451v12.596zm34.425 11.344c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 0 0-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 0 0 .71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 0 0-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 0 0 2.262 2.084 8.868 8.868 0 0 0 2.75 1.02c.946.177 1.745.266 2.395.266v7.806zm24.66 0c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 0 0-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 0 0 .71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 0 0-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 0 0 2.262 2.084 8.868 8.868 0 0 0 2.75 1.02c.946.177 1.745.266 2.395.266v7.806z\" fill-rule=\"evenodd\"/></svg>\n"
},
"$:/core/images/twitter": {
"title": "$:/core/images/twitter",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-twitter tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M41.6263422,115.803477 C27.0279663,115.803477 13.4398394,111.540813 1.99987456,104.234833 C4.02221627,104.472643 6.08004574,104.594302 8.16644978,104.594302 C20.277456,104.594302 31.4238403,100.47763 40.270894,93.5715185 C28.9590538,93.3635501 19.4123842,85.9189246 16.1230832,75.6885328 C17.7011365,75.9892376 19.320669,76.1503787 20.9862896,76.1503787 C23.344152,76.1503787 25.6278127,75.8359011 27.7971751,75.247346 C15.9709927,72.8821073 7.06079851,62.4745062 7.06079851,49.9982394 C7.06079851,49.8898938 7.06079851,49.7820074 7.06264203,49.67458 C10.5482779,51.6032228 14.5339687,52.7615103 18.7717609,52.8951059 C11.8355159,48.277565 7.2714207,40.3958845 7.2714207,31.4624258 C7.2714207,26.7434257 8.54621495,22.3200804 10.7713439,18.5169676 C23.5211299,34.0957738 42.568842,44.3472839 64.0532269,45.4210985 C63.6126256,43.5365285 63.3835682,41.5711584 63.3835682,39.5529928 C63.3835682,25.3326379 74.95811,13.8034766 89.2347917,13.8034766 C96.6697089,13.8034766 103.387958,16.930807 108.103682,21.9353619 C113.991886,20.780288 119.52429,18.6372496 124.518847,15.6866694 C122.588682,21.6993889 118.490075,26.7457211 113.152623,29.9327334 C118.381769,29.3102055 123.363882,27.926045 127.999875,25.8780385 C124.534056,31.0418981 120.151087,35.5772616 115.100763,39.2077561 C115.150538,40.3118708 115.175426,41.4224128 115.175426,42.538923 C115.175426,76.5663154 89.1744164,115.803477 41.6263422,115.803477\"></path>\n </g>\n</svg>\n"
},
"$:/core/images/underline": {
"title": "$:/core/images/underline",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-underline tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M7,117.421488 L121.247934,117.421488 L121.247934,128 L7,128 L7,117.421488 Z M104.871212,98.8958333 L104.871212,0 L88.6117424,0 L88.6117424,55.8560606 C88.6117424,60.3194668 88.0060035,64.432115 86.7945076,68.1941288 C85.5830116,71.9561425 83.7657949,75.239885 81.342803,78.0454545 C78.9198111,80.8510241 75.8911167,83.0189317 72.2566288,84.5492424 C68.6221409,86.0795531 64.3182067,86.844697 59.344697,86.844697 C53.0959284,86.844697 48.1862552,85.0593613 44.6155303,81.4886364 C41.0448054,77.9179114 39.2594697,73.0720003 39.2594697,66.9507576 L39.2594697,0 L23,0 L23,65.0378788 C23,70.3939662 23.5419769,75.2717583 24.625947,79.6714015 C25.709917,84.0710447 27.5908957,87.864883 30.2689394,91.0530303 C32.9469831,94.2411776 36.4538925,96.6960141 40.7897727,98.4176136 C45.125653,100.139213 50.545422,101 57.0492424,101 C64.3182182,101 70.630655,99.5653553 75.9867424,96.6960227 C81.3428298,93.8266902 85.742407,89.33147 89.1856061,83.2102273 L89.5681818,83.2102273 L89.5681818,98.8958333 L104.871212,98.8958333 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/unfold-all-button": {
"title": "$:/core/images/unfold-all-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-unfold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M85.598226,8.34884273 C84.1490432,6.89863875 82.1463102,6 79.9340286,6 L47.9482224,6 C43.5292967,6 39.9411255,9.581722 39.9411255,14 C39.9411255,18.4092877 43.5260249,22 47.9482224,22 L71.9411255,22 L71.9411255,45.9929031 C71.9411255,50.4118288 75.5228475,54 79.9411255,54 C84.3504132,54 87.9411255,50.4151006 87.9411255,45.9929031 L87.9411255,14.0070969 C87.9411255,11.7964515 87.0447363,9.79371715 85.5956548,8.34412458 Z\" transform=\"translate(63.941125, 30.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -30.000000) \"></path>\n <path d=\"M85.6571005,72.2899682 C84.2079177,70.8397642 82.2051847,69.9411255 79.9929031,69.9411255 L48.0070969,69.9411255 C43.5881712,69.9411255 40,73.5228475 40,77.9411255 C40,82.3504132 43.5848994,85.9411255 48.0070969,85.9411255 L72,85.9411255 L72,109.934029 C72,114.352954 75.581722,117.941125 80,117.941125 C84.4092877,117.941125 88,114.356226 88,109.934029 L88,77.9482224 C88,75.737577 87.1036108,73.7348426 85.6545293,72.2852501 Z\" transform=\"translate(64.000000, 93.941125) scale(1, -1) rotate(-45.000000) translate(-64.000000, -93.941125) \"></path>\n </g>\n</svg>"
},
"$:/core/images/unfold-button": {
"title": "$:/core/images/unfold-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-unfold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M85.598226,11.3488427 C84.1490432,9.89863875 82.1463102,9 79.9340286,9 L47.9482224,9 C43.5292967,9 39.9411255,12.581722 39.9411255,17 C39.9411255,21.4092877 43.5260249,25 47.9482224,25 L71.9411255,25 L71.9411255,48.9929031 C71.9411255,53.4118288 75.5228475,57 79.9411255,57 C84.3504132,57 87.9411255,53.4151006 87.9411255,48.9929031 L87.9411255,17.0070969 C87.9411255,14.7964515 87.0447363,12.7937171 85.5956548,11.3441246 Z\" transform=\"translate(63.941125, 33.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -33.000000) \"></path>\n <path d=\"M85.6571005,53.4077172 C84.2079177,51.9575133 82.2051847,51.0588745 79.9929031,51.0588745 L48.0070969,51.0588745 C43.5881712,51.0588745 40,54.6405965 40,59.0588745 C40,63.4681622 43.5848994,67.0588745 48.0070969,67.0588745 L72,67.0588745 L72,91.0517776 C72,95.4707033 75.581722,99.0588745 80,99.0588745 C84.4092877,99.0588745 88,95.4739751 88,91.0517776 L88,59.0659714 C88,56.855326 87.1036108,54.8525917 85.6545293,53.4029991 Z\" transform=\"translate(64.000000, 75.058875) scale(1, -1) rotate(-45.000000) translate(-64.000000, -75.058875) \"></path>\n </g>\n</svg>"
},
"$:/core/images/unlocked-padlock": {
"title": "$:/core/images/unlocked-padlock",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-unlocked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M48.6266053,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L30.136303,64 C19.6806213,51.3490406 2.77158986,28.2115132 25.8366966,8.85759246 C50.4723026,-11.8141335 71.6711028,13.2108337 81.613302,25.0594855 C91.5555012,36.9081373 78.9368488,47.4964439 69.1559674,34.9513593 C59.375086,22.4062748 47.9893192,10.8049522 35.9485154,20.9083862 C23.9077117,31.0118202 34.192312,43.2685325 44.7624679,55.8655518 C47.229397,58.805523 48.403443,61.5979188 48.6266053,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/up-arrow": {
"title": "$:/core/images/up-arrow",
"created": "20150316000544368",
"modified": "20150316000831867",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-up-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n<path transform=\"rotate(-135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25074c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056l0.00001,-0.00001z\" />\n</svg>\n \n"
},
"$:/core/images/video": {
"title": "$:/core/images/video",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-video tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64,12 C29.0909091,12 8.72727273,14.9166667 5.81818182,17.8333333 C2.90909091,20.75 1.93784382e-15,41.1666667 0,64.5 C1.93784382e-15,87.8333333 2.90909091,108.25 5.81818182,111.166667 C8.72727273,114.083333 29.0909091,117 64,117 C98.9090909,117 119.272727,114.083333 122.181818,111.166667 C125.090909,108.25 128,87.8333333 128,64.5 C128,41.1666667 125.090909,20.75 122.181818,17.8333333 C119.272727,14.9166667 98.9090909,12 64,12 Z M54.9161194,44.6182253 C51.102648,42.0759111 48.0112186,43.7391738 48.0112186,48.3159447 L48.0112186,79.6840553 C48.0112186,84.2685636 51.109784,85.9193316 54.9161194,83.3817747 L77.0838806,68.6032672 C80.897352,66.0609529 80.890216,61.9342897 77.0838806,59.3967328 L54.9161194,44.6182253 Z\"></path>\n </g>\n</svg>"
},
"$:/core/images/warning": {
"title": "$:/core/images/warning",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-warning tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M57.0717968,11 C60.1509982,5.66666667 67.8490018,5.66666667 70.9282032,11 L126.353829,107 C129.433031,112.333333 125.584029,119 119.425626,119 L8.57437416,119 C2.41597129,119 -1.43303051,112.333333 1.64617093,107 L57.0717968,11 Z M64,37 C59.581722,37 56,40.5820489 56,44.9935776 L56,73.0064224 C56,77.4211534 59.5907123,81 64,81 C68.418278,81 72,77.4179511 72,73.0064224 L72,44.9935776 C72,40.5788466 68.4092877,37 64,37 Z M64,104 C68.418278,104 72,100.418278 72,96 C72,91.581722 68.418278,88 64,88 C59.581722,88 56,91.581722 56,96 C56,100.418278 59.581722,104 64,104 Z\"></path>\n </g>\n</svg>"
},
"$:/language/Buttons/AdvancedSearch/Caption": {
"title": "$:/language/Buttons/AdvancedSearch/Caption",
"text": "advanced search"
},
"$:/language/Buttons/AdvancedSearch/Hint": {
"title": "$:/language/Buttons/AdvancedSearch/Hint",
"text": "Advanced search"
},
"$:/language/Buttons/Cancel/Caption": {
"title": "$:/language/Buttons/Cancel/Caption",
"text": "cancel"
},
"$:/language/Buttons/Cancel/Hint": {
"title": "$:/language/Buttons/Cancel/Hint",
"text": "Discard changes to this tiddler"
},
"$:/language/Buttons/Clone/Caption": {
"title": "$:/language/Buttons/Clone/Caption",
"text": "clone"
},
"$:/language/Buttons/Clone/Hint": {
"title": "$:/language/Buttons/Clone/Hint",
"text": "Clone this tiddler"
},
"$:/language/Buttons/Close/Caption": {
"title": "$:/language/Buttons/Close/Caption",
"text": "close"
},
"$:/language/Buttons/Close/Hint": {
"title": "$:/language/Buttons/Close/Hint",
"text": "Close this tiddler"
},
"$:/language/Buttons/CloseAll/Caption": {
"title": "$:/language/Buttons/CloseAll/Caption",
"text": "close all"
},
"$:/language/Buttons/CloseAll/Hint": {
"title": "$:/language/Buttons/CloseAll/Hint",
"text": "Close all tiddlers"
},
"$:/language/Buttons/CloseOthers/Caption": {
"title": "$:/language/Buttons/CloseOthers/Caption",
"text": "close others"
},
"$:/language/Buttons/CloseOthers/Hint": {
"title": "$:/language/Buttons/CloseOthers/Hint",
"text": "Close other tiddlers"
},
"$:/language/Buttons/ControlPanel/Caption": {
"title": "$:/language/Buttons/ControlPanel/Caption",
"text": "control panel"
},
"$:/language/Buttons/ControlPanel/Hint": {
"title": "$:/language/Buttons/ControlPanel/Hint",
"text": "Open control panel"
},
"$:/language/Buttons/CopyToClipboard/Caption": {
"title": "$:/language/Buttons/CopyToClipboard/Caption",
"text": "copy to clipboard"
},
"$:/language/Buttons/CopyToClipboard/Hint": {
"title": "$:/language/Buttons/CopyToClipboard/Hint",
"text": "Copy this text to the clipboard"
},
"$:/language/Buttons/Delete/Caption": {
"title": "$:/language/Buttons/Delete/Caption",
"text": "delete"
},
"$:/language/Buttons/Delete/Hint": {
"title": "$:/language/Buttons/Delete/Hint",
"text": "Delete this tiddler"
},
"$:/language/Buttons/Edit/Caption": {
"title": "$:/language/Buttons/Edit/Caption",
"text": "edit"
},
"$:/language/Buttons/Edit/Hint": {
"title": "$:/language/Buttons/Edit/Hint",
"text": "Edit this tiddler"
},
"$:/language/Buttons/Encryption/Caption": {
"title": "$:/language/Buttons/Encryption/Caption",
"text": "encryption"
},
"$:/language/Buttons/Encryption/Hint": {
"title": "$:/language/Buttons/Encryption/Hint",
"text": "Set or clear a password for saving this wiki"
},
"$:/language/Buttons/Encryption/ClearPassword/Caption": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
"text": "clear password"
},
"$:/language/Buttons/Encryption/ClearPassword/Hint": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
"text": "Clear the password and save this wiki without encryption"
},
"$:/language/Buttons/Encryption/SetPassword/Caption": {
"title": "$:/language/Buttons/Encryption/SetPassword/Caption",
"text": "set password"
},
"$:/language/Buttons/Encryption/SetPassword/Hint": {
"title": "$:/language/Buttons/Encryption/SetPassword/Hint",
"text": "Set a password for saving this wiki with encryption"
},
"$:/language/Buttons/ExportPage/Caption": {
"title": "$:/language/Buttons/ExportPage/Caption",
"text": "export all"
},
"$:/language/Buttons/ExportPage/Hint": {
"title": "$:/language/Buttons/ExportPage/Hint",
"text": "Export all tiddlers"
},
"$:/language/Buttons/ExportTiddler/Caption": {
"title": "$:/language/Buttons/ExportTiddler/Caption",
"text": "export tiddler"
},
"$:/language/Buttons/ExportTiddler/Hint": {
"title": "$:/language/Buttons/ExportTiddler/Hint",
"text": "Export tiddler"
},
"$:/language/Buttons/ExportTiddlers/Caption": {
"title": "$:/language/Buttons/ExportTiddlers/Caption",
"text": "export tiddlers"
},
"$:/language/Buttons/ExportTiddlers/Hint": {
"title": "$:/language/Buttons/ExportTiddlers/Hint",
"text": "Export tiddlers"
},
"$:/language/Buttons/Fold/Caption": {
"title": "$:/language/Buttons/Fold/Caption",
"text": "fold tiddler"
},
"$:/language/Buttons/Fold/Hint": {
"title": "$:/language/Buttons/Fold/Hint",
"text": "Fold the body of this tiddler"
},
"$:/language/Buttons/Fold/FoldBar/Caption": {
"title": "$:/language/Buttons/Fold/FoldBar/Caption",
"text": "fold-bar"
},
"$:/language/Buttons/Fold/FoldBar/Hint": {
"title": "$:/language/Buttons/Fold/FoldBar/Hint",
"text": "Optional bars to fold and unfold tiddlers"
},
"$:/language/Buttons/Unfold/Caption": {
"title": "$:/language/Buttons/Unfold/Caption",
"text": "unfold tiddler"
},
"$:/language/Buttons/Unfold/Hint": {
"title": "$:/language/Buttons/Unfold/Hint",
"text": "Unfold the body of this tiddler"
},
"$:/language/Buttons/FoldOthers/Caption": {
"title": "$:/language/Buttons/FoldOthers/Caption",
"text": "fold other tiddlers"
},
"$:/language/Buttons/FoldOthers/Hint": {
"title": "$:/language/Buttons/FoldOthers/Hint",
"text": "Fold the bodies of other opened tiddlers"
},
"$:/language/Buttons/FoldAll/Caption": {
"title": "$:/language/Buttons/FoldAll/Caption",
"text": "fold all tiddlers"
},
"$:/language/Buttons/FoldAll/Hint": {
"title": "$:/language/Buttons/FoldAll/Hint",
"text": "Fold the bodies of all opened tiddlers"
},
"$:/language/Buttons/UnfoldAll/Caption": {
"title": "$:/language/Buttons/UnfoldAll/Caption",
"text": "unfold all tiddlers"
},
"$:/language/Buttons/UnfoldAll/Hint": {
"title": "$:/language/Buttons/UnfoldAll/Hint",
"text": "Unfold the bodies of all opened tiddlers"
},
"$:/language/Buttons/FullScreen/Caption": {
"title": "$:/language/Buttons/FullScreen/Caption",
"text": "full-screen"
},
"$:/language/Buttons/FullScreen/Hint": {
"title": "$:/language/Buttons/FullScreen/Hint",
"text": "Enter or leave full-screen mode"
},
"$:/language/Buttons/Help/Caption": {
"title": "$:/language/Buttons/Help/Caption",
"text": "help"
},
"$:/language/Buttons/Help/Hint": {
"title": "$:/language/Buttons/Help/Hint",
"text": "Show help panel"
},
"$:/language/Buttons/Import/Caption": {
"title": "$:/language/Buttons/Import/Caption",
"text": "import"
},
"$:/language/Buttons/Import/Hint": {
"title": "$:/language/Buttons/Import/Hint",
"text": "Import many types of file including text, image, TiddlyWiki or JSON"
},
"$:/language/Buttons/Info/Caption": {
"title": "$:/language/Buttons/Info/Caption",
"text": "info"
},
"$:/language/Buttons/Info/Hint": {
"title": "$:/language/Buttons/Info/Hint",
"text": "Show information for this tiddler"
},
"$:/language/Buttons/Home/Caption": {
"title": "$:/language/Buttons/Home/Caption",
"text": "home"
},
"$:/language/Buttons/Home/Hint": {
"title": "$:/language/Buttons/Home/Hint",
"text": "Open the default tiddlers"
},
"$:/language/Buttons/Language/Caption": {
"title": "$:/language/Buttons/Language/Caption",
"text": "language"
},
"$:/language/Buttons/Language/Hint": {
"title": "$:/language/Buttons/Language/Hint",
"text": "Choose the user interface language"
},
"$:/language/Buttons/Manager/Caption": {
"title": "$:/language/Buttons/Manager/Caption",
"text": "tiddler manager"
},
"$:/language/Buttons/Manager/Hint": {
"title": "$:/language/Buttons/Manager/Hint",
"text": "Open tiddler manager"
},
"$:/language/Buttons/More/Caption": {
"title": "$:/language/Buttons/More/Caption",
"text": "more"
},
"$:/language/Buttons/More/Hint": {
"title": "$:/language/Buttons/More/Hint",
"text": "More actions"
},
"$:/language/Buttons/NewHere/Caption": {
"title": "$:/language/Buttons/NewHere/Caption",
"text": "new here"
},
"$:/language/Buttons/NewHere/Hint": {
"title": "$:/language/Buttons/NewHere/Hint",
"text": "Create a new tiddler tagged with this one"
},
"$:/language/Buttons/NewJournal/Caption": {
"title": "$:/language/Buttons/NewJournal/Caption",
"text": "new journal"
},
"$:/language/Buttons/NewJournal/Hint": {
"title": "$:/language/Buttons/NewJournal/Hint",
"text": "Create a new journal tiddler"
},
"$:/language/Buttons/NewJournalHere/Caption": {
"title": "$:/language/Buttons/NewJournalHere/Caption",
"text": "new journal here"
},
"$:/language/Buttons/NewJournalHere/Hint": {
"title": "$:/language/Buttons/NewJournalHere/Hint",
"text": "Create a new journal tiddler tagged with this one"
},
"$:/language/Buttons/NewImage/Caption": {
"title": "$:/language/Buttons/NewImage/Caption",
"text": "new image"
},
"$:/language/Buttons/NewImage/Hint": {
"title": "$:/language/Buttons/NewImage/Hint",
"text": "Create a new image tiddler"
},
"$:/language/Buttons/NewMarkdown/Caption": {
"title": "$:/language/Buttons/NewMarkdown/Caption",
"text": "new Markdown tiddler"
},
"$:/language/Buttons/NewMarkdown/Hint": {
"title": "$:/language/Buttons/NewMarkdown/Hint",
"text": "Create a new Markdown tiddler"
},
"$:/language/Buttons/NewTiddler/Caption": {
"title": "$:/language/Buttons/NewTiddler/Caption",
"text": "new tiddler"
},
"$:/language/Buttons/NewTiddler/Hint": {
"title": "$:/language/Buttons/NewTiddler/Hint",
"text": "Create a new tiddler"
},
"$:/language/Buttons/OpenWindow/Caption": {
"title": "$:/language/Buttons/OpenWindow/Caption",
"text": "open in new window"
},
"$:/language/Buttons/OpenWindow/Hint": {
"title": "$:/language/Buttons/OpenWindow/Hint",
"text": "Open tiddler in new window"
},
"$:/language/Buttons/Palette/Caption": {
"title": "$:/language/Buttons/Palette/Caption",
"text": "palette"
},
"$:/language/Buttons/Palette/Hint": {
"title": "$:/language/Buttons/Palette/Hint",
"text": "Choose the colour palette"
},
"$:/language/Buttons/Permalink/Caption": {
"title": "$:/language/Buttons/Permalink/Caption",
"text": "permalink"
},
"$:/language/Buttons/Permalink/Hint": {
"title": "$:/language/Buttons/Permalink/Hint",
"text": "Set browser address bar to a direct link to this tiddler"
},
"$:/language/Buttons/Permaview/Caption": {
"title": "$:/language/Buttons/Permaview/Caption",
"text": "permaview"
},
"$:/language/Buttons/Permaview/Hint": {
"title": "$:/language/Buttons/Permaview/Hint",
"text": "Set browser address bar to a direct link to all the tiddlers in this story"
},
"$:/language/Buttons/Print/Caption": {
"title": "$:/language/Buttons/Print/Caption",
"text": "print page"
},
"$:/language/Buttons/Print/Hint": {
"title": "$:/language/Buttons/Print/Hint",
"text": "Print the current page"
},
"$:/language/Buttons/Refresh/Caption": {
"title": "$:/language/Buttons/Refresh/Caption",
"text": "refresh"
},
"$:/language/Buttons/Refresh/Hint": {
"title": "$:/language/Buttons/Refresh/Hint",
"text": "Perform a full refresh of the wiki"
},
"$:/language/Buttons/Save/Caption": {
"title": "$:/language/Buttons/Save/Caption",
"text": "ok"
},
"$:/language/Buttons/Save/Hint": {
"title": "$:/language/Buttons/Save/Hint",
"text": "Confirm changes to this tiddler"
},
"$:/language/Buttons/SaveWiki/Caption": {
"title": "$:/language/Buttons/SaveWiki/Caption",
"text": "save changes"
},
"$:/language/Buttons/SaveWiki/Hint": {
"title": "$:/language/Buttons/SaveWiki/Hint",
"text": "Save changes"
},
"$:/language/Buttons/StoryView/Caption": {
"title": "$:/language/Buttons/StoryView/Caption",
"text": "storyview"
},
"$:/language/Buttons/StoryView/Hint": {
"title": "$:/language/Buttons/StoryView/Hint",
"text": "Choose the story visualisation"
},
"$:/language/Buttons/HideSideBar/Caption": {
"title": "$:/language/Buttons/HideSideBar/Caption",
"text": "hide sidebar"
},
"$:/language/Buttons/HideSideBar/Hint": {
"title": "$:/language/Buttons/HideSideBar/Hint",
"text": "Hide sidebar"
},
"$:/language/Buttons/ShowSideBar/Caption": {
"title": "$:/language/Buttons/ShowSideBar/Caption",
"text": "show sidebar"
},
"$:/language/Buttons/ShowSideBar/Hint": {
"title": "$:/language/Buttons/ShowSideBar/Hint",
"text": "Show sidebar"
},
"$:/language/Buttons/TagManager/Caption": {
"title": "$:/language/Buttons/TagManager/Caption",
"text": "tag manager"
},
"$:/language/Buttons/TagManager/Hint": {
"title": "$:/language/Buttons/TagManager/Hint",
"text": "Open tag manager"
},
"$:/language/Buttons/Timestamp/Caption": {
"title": "$:/language/Buttons/Timestamp/Caption",
"text": "timestamps"
},
"$:/language/Buttons/Timestamp/Hint": {
"title": "$:/language/Buttons/Timestamp/Hint",
"text": "Choose whether modifications update timestamps"
},
"$:/language/Buttons/Timestamp/On/Caption": {
"title": "$:/language/Buttons/Timestamp/On/Caption",
"text": "timestamps are on"
},
"$:/language/Buttons/Timestamp/On/Hint": {
"title": "$:/language/Buttons/Timestamp/On/Hint",
"text": "Update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Timestamp/Off/Caption": {
"title": "$:/language/Buttons/Timestamp/Off/Caption",
"text": "timestamps are off"
},
"$:/language/Buttons/Timestamp/Off/Hint": {
"title": "$:/language/Buttons/Timestamp/Off/Hint",
"text": "Don't update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Theme/Caption": {
"title": "$:/language/Buttons/Theme/Caption",
"text": "theme"
},
"$:/language/Buttons/Theme/Hint": {
"title": "$:/language/Buttons/Theme/Hint",
"text": "Choose the display theme"
},
"$:/language/Buttons/Bold/Caption": {
"title": "$:/language/Buttons/Bold/Caption",
"text": "bold"
},
"$:/language/Buttons/Bold/Hint": {
"title": "$:/language/Buttons/Bold/Hint",
"text": "Apply bold formatting to selection"
},
"$:/language/Buttons/Clear/Caption": {
"title": "$:/language/Buttons/Clear/Caption",
"text": "clear"
},
"$:/language/Buttons/Clear/Hint": {
"title": "$:/language/Buttons/Clear/Hint",
"text": "Clear image to solid colour"
},
"$:/language/Buttons/EditorHeight/Caption": {
"title": "$:/language/Buttons/EditorHeight/Caption",
"text": "editor height"
},
"$:/language/Buttons/EditorHeight/Caption/Auto": {
"title": "$:/language/Buttons/EditorHeight/Caption/Auto",
"text": "Automatically adjust height to fit content"
},
"$:/language/Buttons/EditorHeight/Caption/Fixed": {
"title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
"text": "Fixed height:"
},
"$:/language/Buttons/EditorHeight/Hint": {
"title": "$:/language/Buttons/EditorHeight/Hint",
"text": "Choose the height of the text editor"
},
"$:/language/Buttons/Excise/Caption": {
"title": "$:/language/Buttons/Excise/Caption",
"text": "excise"
},
"$:/language/Buttons/Excise/Caption/Excise": {
"title": "$:/language/Buttons/Excise/Caption/Excise",
"text": "Perform excision"
},
"$:/language/Buttons/Excise/Caption/MacroName": {
"title": "$:/language/Buttons/Excise/Caption/MacroName",
"text": "Macro name:"
},
"$:/language/Buttons/Excise/Caption/NewTitle": {
"title": "$:/language/Buttons/Excise/Caption/NewTitle",
"text": "Title of new tiddler:"
},
"$:/language/Buttons/Excise/Caption/Replace": {
"title": "$:/language/Buttons/Excise/Caption/Replace",
"text": "Replace excised text with:"
},
"$:/language/Buttons/Excise/Caption/Replace/Macro": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
"text": "macro"
},
"$:/language/Buttons/Excise/Caption/Replace/Link": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Link",
"text": "link"
},
"$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
"text": "transclusion"
},
"$:/language/Buttons/Excise/Caption/Tag": {
"title": "$:/language/Buttons/Excise/Caption/Tag",
"text": "Tag new tiddler with the title of this tiddler"
},
"$:/language/Buttons/Excise/Caption/TiddlerExists": {
"title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
"text": "Warning: tiddler already exists"
},
"$:/language/Buttons/Excise/Hint": {
"title": "$:/language/Buttons/Excise/Hint",
"text": "Excise the selected text into a new tiddler"
},
"$:/language/Buttons/Heading1/Caption": {
"title": "$:/language/Buttons/Heading1/Caption",
"text": "heading 1"
},
"$:/language/Buttons/Heading1/Hint": {
"title": "$:/language/Buttons/Heading1/Hint",
"text": "Apply heading level 1 formatting to lines containing selection"
},
"$:/language/Buttons/Heading2/Caption": {
"title": "$:/language/Buttons/Heading2/Caption",
"text": "heading 2"
},
"$:/language/Buttons/Heading2/Hint": {
"title": "$:/language/Buttons/Heading2/Hint",
"text": "Apply heading level 2 formatting to lines containing selection"
},
"$:/language/Buttons/Heading3/Caption": {
"title": "$:/language/Buttons/Heading3/Caption",
"text": "heading 3"
},
"$:/language/Buttons/Heading3/Hint": {
"title": "$:/language/Buttons/Heading3/Hint",
"text": "Apply heading level 3 formatting to lines containing selection"
},
"$:/language/Buttons/Heading4/Caption": {
"title": "$:/language/Buttons/Heading4/Caption",
"text": "heading 4"
},
"$:/language/Buttons/Heading4/Hint": {
"title": "$:/language/Buttons/Heading4/Hint",
"text": "Apply heading level 4 formatting to lines containing selection"
},
"$:/language/Buttons/Heading5/Caption": {
"title": "$:/language/Buttons/Heading5/Caption",
"text": "heading 5"
},
"$:/language/Buttons/Heading5/Hint": {
"title": "$:/language/Buttons/Heading5/Hint",
"text": "Apply heading level 5 formatting to lines containing selection"
},
"$:/language/Buttons/Heading6/Caption": {
"title": "$:/language/Buttons/Heading6/Caption",
"text": "heading 6"
},
"$:/language/Buttons/Heading6/Hint": {
"title": "$:/language/Buttons/Heading6/Hint",
"text": "Apply heading level 6 formatting to lines containing selection"
},
"$:/language/Buttons/Italic/Caption": {
"title": "$:/language/Buttons/Italic/Caption",
"text": "italic"
},
"$:/language/Buttons/Italic/Hint": {
"title": "$:/language/Buttons/Italic/Hint",
"text": "Apply italic formatting to selection"
},
"$:/language/Buttons/LineWidth/Caption": {
"title": "$:/language/Buttons/LineWidth/Caption",
"text": "line width"
},
"$:/language/Buttons/LineWidth/Hint": {
"title": "$:/language/Buttons/LineWidth/Hint",
"text": "Set line width for painting"
},
"$:/language/Buttons/Link/Caption": {
"title": "$:/language/Buttons/Link/Caption",
"text": "link"
},
"$:/language/Buttons/Link/Hint": {
"title": "$:/language/Buttons/Link/Hint",
"text": "Create wikitext link"
},
"$:/language/Buttons/Linkify/Caption": {
"title": "$:/language/Buttons/Linkify/Caption",
"text": "wikilink"
},
"$:/language/Buttons/Linkify/Hint": {
"title": "$:/language/Buttons/Linkify/Hint",
"text": "Wrap selection in square brackets"
},
"$:/language/Buttons/ListBullet/Caption": {
"title": "$:/language/Buttons/ListBullet/Caption",
"text": "bulleted list"
},
"$:/language/Buttons/ListBullet/Hint": {
"title": "$:/language/Buttons/ListBullet/Hint",
"text": "Apply bulleted list formatting to lines containing selection"
},
"$:/language/Buttons/ListNumber/Caption": {
"title": "$:/language/Buttons/ListNumber/Caption",
"text": "numbered list"
},
"$:/language/Buttons/ListNumber/Hint": {
"title": "$:/language/Buttons/ListNumber/Hint",
"text": "Apply numbered list formatting to lines containing selection"
},
"$:/language/Buttons/MonoBlock/Caption": {
"title": "$:/language/Buttons/MonoBlock/Caption",
"text": "monospaced block"
},
"$:/language/Buttons/MonoBlock/Hint": {
"title": "$:/language/Buttons/MonoBlock/Hint",
"text": "Apply monospaced block formatting to lines containing selection"
},
"$:/language/Buttons/MonoLine/Caption": {
"title": "$:/language/Buttons/MonoLine/Caption",
"text": "monospaced"
},
"$:/language/Buttons/MonoLine/Hint": {
"title": "$:/language/Buttons/MonoLine/Hint",
"text": "Apply monospaced character formatting to selection"
},
"$:/language/Buttons/Opacity/Caption": {
"title": "$:/language/Buttons/Opacity/Caption",
"text": "opacity"
},
"$:/language/Buttons/Opacity/Hint": {
"title": "$:/language/Buttons/Opacity/Hint",
"text": "Set painting opacity"
},
"$:/language/Buttons/Paint/Caption": {
"title": "$:/language/Buttons/Paint/Caption",
"text": "paint colour"
},
"$:/language/Buttons/Paint/Hint": {
"title": "$:/language/Buttons/Paint/Hint",
"text": "Set painting colour"
},
"$:/language/Buttons/Picture/Caption": {
"title": "$:/language/Buttons/Picture/Caption",
"text": "picture"
},
"$:/language/Buttons/Picture/Hint": {
"title": "$:/language/Buttons/Picture/Hint",
"text": "Insert picture"
},
"$:/language/Buttons/Preview/Caption": {
"title": "$:/language/Buttons/Preview/Caption",
"text": "preview"
},
"$:/language/Buttons/Preview/Hint": {
"title": "$:/language/Buttons/Preview/Hint",
"text": "Show preview pane"
},
"$:/language/Buttons/PreviewType/Caption": {
"title": "$:/language/Buttons/PreviewType/Caption",
"text": "preview type"
},
"$:/language/Buttons/PreviewType/Hint": {
"title": "$:/language/Buttons/PreviewType/Hint",
"text": "Choose preview type"
},
"$:/language/Buttons/Quote/Caption": {
"title": "$:/language/Buttons/Quote/Caption",
"text": "quote"
},
"$:/language/Buttons/Quote/Hint": {
"title": "$:/language/Buttons/Quote/Hint",
"text": "Apply quoted text formatting to lines containing selection"
},
"$:/language/Buttons/RotateLeft/Caption": {
"title": "$:/language/Buttons/RotateLeft/Caption",
"text": "rotate left"
},
"$:/language/Buttons/RotateLeft/Hint": {
"title": "$:/language/Buttons/RotateLeft/Hint",
"text": "Rotate image left by 90 degrees"
},
"$:/language/Buttons/Size/Caption": {
"title": "$:/language/Buttons/Size/Caption",
"text": "image size"
},
"$:/language/Buttons/Size/Caption/Height": {
"title": "$:/language/Buttons/Size/Caption/Height",
"text": "Height:"
},
"$:/language/Buttons/Size/Caption/Resize": {
"title": "$:/language/Buttons/Size/Caption/Resize",
"text": "Resize image"
},
"$:/language/Buttons/Size/Caption/Width": {
"title": "$:/language/Buttons/Size/Caption/Width",
"text": "Width:"
},
"$:/language/Buttons/Size/Hint": {
"title": "$:/language/Buttons/Size/Hint",
"text": "Set image size"
},
"$:/language/Buttons/Stamp/Caption": {
"title": "$:/language/Buttons/Stamp/Caption",
"text": "stamp"
},
"$:/language/Buttons/Stamp/Caption/New": {
"title": "$:/language/Buttons/Stamp/Caption/New",
"text": "Add your own"
},
"$:/language/Buttons/Stamp/Hint": {
"title": "$:/language/Buttons/Stamp/Hint",
"text": "Insert a preconfigured snippet of text"
},
"$:/language/Buttons/Stamp/New/Title": {
"title": "$:/language/Buttons/Stamp/New/Title",
"text": "Name as shown in menu"
},
"$:/language/Buttons/Stamp/New/Text": {
"title": "$:/language/Buttons/Stamp/New/Text",
"text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
},
"$:/language/Buttons/Strikethrough/Caption": {
"title": "$:/language/Buttons/Strikethrough/Caption",
"text": "strikethrough"
},
"$:/language/Buttons/Strikethrough/Hint": {
"title": "$:/language/Buttons/Strikethrough/Hint",
"text": "Apply strikethrough formatting to selection"
},
"$:/language/Buttons/Subscript/Caption": {
"title": "$:/language/Buttons/Subscript/Caption",
"text": "subscript"
},
"$:/language/Buttons/Subscript/Hint": {
"title": "$:/language/Buttons/Subscript/Hint",
"text": "Apply subscript formatting to selection"
},
"$:/language/Buttons/Superscript/Caption": {
"title": "$:/language/Buttons/Superscript/Caption",
"text": "superscript"
},
"$:/language/Buttons/Superscript/Hint": {
"title": "$:/language/Buttons/Superscript/Hint",
"text": "Apply superscript formatting to selection"
},
"$:/language/Buttons/Transcludify/Caption": {
"title": "$:/language/Buttons/Transcludify/Caption",
"text": "transclusion"
},
"$:/language/Buttons/Transcludify/Hint": {
"title": "$:/language/Buttons/Transcludify/Hint",
"text": "Wrap selection in curly brackets"
},
"$:/language/Buttons/Underline/Caption": {
"title": "$:/language/Buttons/Underline/Caption",
"text": "underline"
},
"$:/language/Buttons/Underline/Hint": {
"title": "$:/language/Buttons/Underline/Hint",
"text": "Apply underline formatting to selection"
},
"$:/language/ControlPanel/Advanced/Caption": {
"title": "$:/language/ControlPanel/Advanced/Caption",
"text": "Advanced"
},
"$:/language/ControlPanel/Advanced/Hint": {
"title": "$:/language/ControlPanel/Advanced/Hint",
"text": "Internal information about this TiddlyWiki"
},
"$:/language/ControlPanel/Appearance/Caption": {
"title": "$:/language/ControlPanel/Appearance/Caption",
"text": "Appearance"
},
"$:/language/ControlPanel/Appearance/Hint": {
"title": "$:/language/ControlPanel/Appearance/Hint",
"text": "Ways to customise the appearance of your TiddlyWiki."
},
"$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
"title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
"text": "Animation duration:"
},
"$:/language/ControlPanel/Basics/Caption": {
"title": "$:/language/ControlPanel/Basics/Caption",
"text": "Basics"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
"text": "Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
"text": "Default tiddlers:"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
"text": "Choose which tiddlers are displayed at startup:"
},
"$:/language/ControlPanel/Basics/Language/Prompt": {
"title": "$:/language/ControlPanel/Basics/Language/Prompt",
"text": "Hello! Current language:"
},
"$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
"text": "Title of new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
"text": "Text for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
"text": "Tags for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
"text": "Title of new tiddlers"
},
"$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
"text": "Number of overridden shadow tiddlers:"
},
"$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
"text": "Number of shadow tiddlers:"
},
"$:/language/ControlPanel/Basics/Subtitle/Prompt": {
"title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
"text": "Subtitle:"
},
"$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
"text": "Number of system tiddlers:"
},
"$:/language/ControlPanel/Basics/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tags/Prompt",
"text": "Number of tags:"
},
"$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
"text": "Number of tiddlers:"
},
"$:/language/ControlPanel/Basics/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/Title/Prompt",
"text": "Title of this ~TiddlyWiki:"
},
"$:/language/ControlPanel/Basics/Username/Prompt": {
"title": "$:/language/ControlPanel/Basics/Username/Prompt",
"text": "Username for signing edits:"
},
"$:/language/ControlPanel/Basics/Version/Prompt": {
"title": "$:/language/ControlPanel/Basics/Version/Prompt",
"text": "~TiddlyWiki version:"
},
"$:/language/ControlPanel/EditorTypes/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Caption",
"text": "Editor Types"
},
"$:/language/ControlPanel/EditorTypes/Editor/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
"text": "Editor"
},
"$:/language/ControlPanel/EditorTypes/Hint": {
"title": "$:/language/ControlPanel/EditorTypes/Hint",
"text": "These tiddlers determine which editor is used to edit specific tiddler types."
},
"$:/language/ControlPanel/EditorTypes/Type/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
"text": "Type"
},
"$:/language/ControlPanel/Info/Caption": {
"title": "$:/language/ControlPanel/Info/Caption",
"text": "Info"
},
"$:/language/ControlPanel/Info/Hint": {
"title": "$:/language/ControlPanel/Info/Hint",
"text": "Information about this TiddlyWiki"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
"text": "Type shortcut here"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
"text": "add shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
"text": "Keyboard Shortcuts"
},
"$:/language/ControlPanel/KeyboardShortcuts/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
"text": "Manage keyboard shortcut assignments"
},
"$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
"text": "No keyboard shortcuts assigned"
},
"$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
"text": "remove keyboard shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
"text": "All platforms"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
"text": "Macintosh platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
"text": "Non-Macintosh platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
"text": "Linux platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
"text": "Non-Linux platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
"text": "Windows platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
"text": "Non-Windows platforms only"
},
"$:/language/ControlPanel/LoadedModules/Caption": {
"title": "$:/language/ControlPanel/LoadedModules/Caption",
"text": "Loaded Modules"
},
"$:/language/ControlPanel/LoadedModules/Hint": {
"title": "$:/language/ControlPanel/LoadedModules/Hint",
"text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."
},
"$:/language/ControlPanel/Palette/Caption": {
"title": "$:/language/ControlPanel/Palette/Caption",
"text": "Palette"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
"text": "clone"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
"text": "It is recommended that you clone this shadow palette before editing it"
},
"$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
"text": "This shadow palette has been modified"
},
"$:/language/ControlPanel/Palette/Editor/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt",
"text": "Editing"
},
"$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
"text": "reset"
},
"$:/language/ControlPanel/Palette/HideEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
"text": "hide editor"
},
"$:/language/ControlPanel/Palette/Prompt": {
"title": "$:/language/ControlPanel/Palette/Prompt",
"text": "Current palette:"
},
"$:/language/ControlPanel/Palette/ShowEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
"text": "show editor"
},
"$:/language/ControlPanel/Parsing/Caption": {
"title": "$:/language/ControlPanel/Parsing/Caption",
"text": "Parsing"
},
"$:/language/ControlPanel/Parsing/Hint": {
"title": "$:/language/ControlPanel/Parsing/Hint",
"text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|https://tiddlywiki.com/#SafeMode]] to restore normal operation."
},
"$:/language/ControlPanel/Parsing/Block/Caption": {
"title": "$:/language/ControlPanel/Parsing/Block/Caption",
"text": "Block Parse Rules"
},
"$:/language/ControlPanel/Parsing/Inline/Caption": {
"title": "$:/language/ControlPanel/Parsing/Inline/Caption",
"text": "Inline Parse Rules"
},
"$:/language/ControlPanel/Parsing/Pragma/Caption": {
"title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
"text": "Pragma Parse Rules"
},
"$:/language/ControlPanel/Plugins/Add/Caption": {
"title": "$:/language/ControlPanel/Plugins/Add/Caption",
"text": "Get more plugins"
},
"$:/language/ControlPanel/Plugins/Add/Hint": {
"title": "$:/language/ControlPanel/Plugins/Add/Hint",
"text": "Install plugins from the official library"
},
"$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
"text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
},
"$:/language/ControlPanel/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Disable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Disable/Caption",
"text": "disable"
},
"$:/language/ControlPanel/Plugins/Disable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Disable/Hint",
"text": "Disable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Disabled/Status": {
"title": "$:/language/ControlPanel/Plugins/Disabled/Status",
"text": "(disabled)"
},
"$:/language/ControlPanel/Plugins/Empty/Hint": {
"title": "$:/language/ControlPanel/Plugins/Empty/Hint",
"text": "None"
},
"$:/language/ControlPanel/Plugins/Enable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Enable/Caption",
"text": "enable"
},
"$:/language/ControlPanel/Plugins/Enable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Enable/Hint",
"text": "Enable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Install/Caption": {
"title": "$:/language/ControlPanel/Plugins/Install/Caption",
"text": "install"
},
"$:/language/ControlPanel/Plugins/Installed/Hint": {
"title": "$:/language/ControlPanel/Plugins/Installed/Hint",
"text": "Currently installed plugins:"
},
"$:/language/ControlPanel/Plugins/Languages/Caption": {
"title": "$:/language/ControlPanel/Plugins/Languages/Caption",
"text": "Languages"
},
"$:/language/ControlPanel/Plugins/Languages/Hint": {
"title": "$:/language/ControlPanel/Plugins/Languages/Hint",
"text": "Language pack plugins"
},
"$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
"title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
"text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
},
"$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
"text": "This plugin is not currently installed"
},
"$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
"text": "open plugin library"
},
"$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
"text": "close plugin library"
},
"$:/language/ControlPanel/Plugins/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Plugins/Hint": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Reinstall/Caption": {
"title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
"text": "reinstall"
},
"$:/language/ControlPanel/Plugins/Themes/Caption": {
"title": "$:/language/ControlPanel/Plugins/Themes/Caption",
"text": "Themes"
},
"$:/language/ControlPanel/Plugins/Themes/Hint": {
"title": "$:/language/ControlPanel/Plugins/Themes/Hint",
"text": "Theme plugins"
},
"$:/language/ControlPanel/Saving/Caption": {
"title": "$:/language/ControlPanel/Saving/Caption",
"text": "Saving"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
"text": "Permit automatic saving for the download saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
"text": "Enable Autosave for Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
"text": "Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
"text": "These settings apply to the HTML5-compatible download saver"
},
"$:/language/ControlPanel/Saving/General/Caption": {
"title": "$:/language/ControlPanel/Saving/General/Caption",
"text": "General"
},
"$:/language/ControlPanel/Saving/General/Hint": {
"title": "$:/language/ControlPanel/Saving/General/Hint",
"text": "These settings apply to all the loaded savers"
},
"$:/language/ControlPanel/Saving/Hint": {
"title": "$:/language/ControlPanel/Saving/Hint",
"text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
"text": "Advanced Settings"
},
"$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
"text": "Backup Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
"text": "Backups"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
"text": "~TiddlySpot Saver"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Description": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
"text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
"text": "Upload Filename"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
"text": "~TiddlySpot"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
"text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Password": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
"text": "Password"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
"text": "Server URL"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
"text": "Upload Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
"text": "Wiki Name"
},
"$:/language/ControlPanel/Settings/AutoSave/Caption": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
"text": "Autosave"
},
"$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
"text": "Do not save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
"text": "Save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
"text": "Attempt to automatically save changes during editing when using a supporting saver"
},
"$:/language/ControlPanel/Settings/CamelCase/Caption": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
"text": "Camel Case Wiki Links"
},
"$:/language/ControlPanel/Settings/CamelCase/Hint": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
"text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/CamelCase/Description": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Description",
"text": "Enable automatic ~CamelCase linking"
},
"$:/language/ControlPanel/Settings/Caption": {
"title": "$:/language/ControlPanel/Settings/Caption",
"text": "Settings"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
"text": "Enable or disable the editor toolbar:"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Description": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
"text": "Show editor toolbar"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
"text": "Tiddler Info Panel Mode"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
"text": "Control when the tiddler info panel closes:"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
"text": "Tiddler info panel closes automatically"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
"text": "Tiddler info panel stays open until explicitly closed"
},
"$:/language/ControlPanel/Settings/Hint": {
"title": "$:/language/ControlPanel/Settings/Hint",
"text": "These settings let you customise the behaviour of TiddlyWiki."
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
"text": "Navigation Address Bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
"text": "Behaviour of the browser address bar when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
"text": "Do not update the address bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
"text": "Include the target tiddler"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
"text": "Include the target tiddler and the current story sequence"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
"text": "Navigation History"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
"text": "Update browser history when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
"text": "Do not update history"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
"text": "Update history"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
"text": "Performance Instrumentation"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
"text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
"text": "Enable performance instrumentation"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
"text": "Toolbar Button Style"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
"text": "Choose the style for toolbar buttons:"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
"text": "Borderless"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
"text": "Boxed"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
"text": "Rounded"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
"text": "Toolbar Buttons"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
"text": "Default toolbar button appearance:"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
"text": "Include icon"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
"text": "Include text"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
"text": "Default Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
"text": "Specify which sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
"text": "Default More Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
"text": "Specify which More sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
"text": "Tiddler Opening Behaviour"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
"text": "Navigation from //within// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
"text": "Navigation from //outside// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
"text": "Open above the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
"text": "Open below the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
"text": "Open at the top of the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
"text": "Open at the bottom of the story river"
},
"$:/language/ControlPanel/Settings/TitleLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
"text": "Tiddler Titles"
},
"$:/language/ControlPanel/Settings/TitleLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
"text": "Optionally display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
"text": "Do not display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
"text": "Display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
"text": "Wiki Links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
"text": "Choose whether to link to tiddlers that do not exist yet"
},
"$:/language/ControlPanel/Settings/MissingLinks/Description": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
"text": "Enable links to missing tiddlers"
},
"$:/language/ControlPanel/StoryView/Caption": {
"title": "$:/language/ControlPanel/StoryView/Caption",
"text": "Story View"
},
"$:/language/ControlPanel/StoryView/Prompt": {
"title": "$:/language/ControlPanel/StoryView/Prompt",
"text": "Current view:"
},
"$:/language/ControlPanel/Stylesheets/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Caption",
"text": "Stylesheets"
},
"$:/language/ControlPanel/Stylesheets/Expand/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
"text": "Expand All"
},
"$:/language/ControlPanel/Stylesheets/Hint": {
"title": "$:/language/ControlPanel/Stylesheets/Hint",
"text": "This is the rendered CSS of the current stylesheet tiddlers tagged with <<tag \"$:/tags/Stylesheet\">>"
},
"$:/language/ControlPanel/Stylesheets/Restore/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
"text": "Restore"
},
"$:/language/ControlPanel/Theme/Caption": {
"title": "$:/language/ControlPanel/Theme/Caption",
"text": "Theme"
},
"$:/language/ControlPanel/Theme/Prompt": {
"title": "$:/language/ControlPanel/Theme/Prompt",
"text": "Current theme:"
},
"$:/language/ControlPanel/TiddlerFields/Caption": {
"title": "$:/language/ControlPanel/TiddlerFields/Caption",
"text": "Tiddler Fields"
},
"$:/language/ControlPanel/TiddlerFields/Hint": {
"title": "$:/language/ControlPanel/TiddlerFields/Hint",
"text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
},
"$:/language/ControlPanel/Toolbars/Caption": {
"title": "$:/language/ControlPanel/Toolbars/Caption",
"text": "Toolbars"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
"text": "Edit Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/Hint": {
"title": "$:/language/ControlPanel/Toolbars/Hint",
"text": "Select which toolbar buttons are displayed"
},
"$:/language/ControlPanel/Toolbars/PageControls/Caption": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
"text": "Page Toolbar"
},
"$:/language/ControlPanel/Toolbars/PageControls/Hint": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
"text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
"text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
"text": "View Toolbar"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Tools/Download/Full/Caption": {
"title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
"text": "Download full wiki"
},
"$:/language/Date/DaySuffix/1": {
"title": "$:/language/Date/DaySuffix/1",
"text": "st"
},
"$:/language/Date/DaySuffix/2": {
"title": "$:/language/Date/DaySuffix/2",
"text": "nd"
},
"$:/language/Date/DaySuffix/3": {
"title": "$:/language/Date/DaySuffix/3",
"text": "rd"
},
"$:/language/Date/DaySuffix/4": {
"title": "$:/language/Date/DaySuffix/4",
"text": "th"
},
"$:/language/Date/DaySuffix/5": {
"title": "$:/language/Date/DaySuffix/5",
"text": "th"
},
"$:/language/Date/DaySuffix/6": {
"title": "$:/language/Date/DaySuffix/6",
"text": "th"
},
"$:/language/Date/DaySuffix/7": {
"title": "$:/language/Date/DaySuffix/7",
"text": "th"
},
"$:/language/Date/DaySuffix/8": {
"title": "$:/language/Date/DaySuffix/8",
"text": "th"
},
"$:/language/Date/DaySuffix/9": {
"title": "$:/language/Date/DaySuffix/9",
"text": "th"
},
"$:/language/Date/DaySuffix/10": {
"title": "$:/language/Date/DaySuffix/10",
"text": "th"
},
"$:/language/Date/DaySuffix/11": {
"title": "$:/language/Date/DaySuffix/11",
"text": "th"
},
"$:/language/Date/DaySuffix/12": {
"title": "$:/language/Date/DaySuffix/12",
"text": "th"
},
"$:/language/Date/DaySuffix/13": {
"title": "$:/language/Date/DaySuffix/13",
"text": "th"
},
"$:/language/Date/DaySuffix/14": {
"title": "$:/language/Date/DaySuffix/14",
"text": "th"
},
"$:/language/Date/DaySuffix/15": {
"title": "$:/language/Date/DaySuffix/15",
"text": "th"
},
"$:/language/Date/DaySuffix/16": {
"title": "$:/language/Date/DaySuffix/16",
"text": "th"
},
"$:/language/Date/DaySuffix/17": {
"title": "$:/language/Date/DaySuffix/17",
"text": "th"
},
"$:/language/Date/DaySuffix/18": {
"title": "$:/language/Date/DaySuffix/18",
"text": "th"
},
"$:/language/Date/DaySuffix/19": {
"title": "$:/language/Date/DaySuffix/19",
"text": "th"
},
"$:/language/Date/DaySuffix/20": {
"title": "$:/language/Date/DaySuffix/20",
"text": "th"
},
"$:/language/Date/DaySuffix/21": {
"title": "$:/language/Date/DaySuffix/21",
"text": "st"
},
"$:/language/Date/DaySuffix/22": {
"title": "$:/language/Date/DaySuffix/22",
"text": "nd"
},
"$:/language/Date/DaySuffix/23": {
"title": "$:/language/Date/DaySuffix/23",
"text": "rd"
},
"$:/language/Date/DaySuffix/24": {
"title": "$:/language/Date/DaySuffix/24",
"text": "th"
},
"$:/language/Date/DaySuffix/25": {
"title": "$:/language/Date/DaySuffix/25",
"text": "th"
},
"$:/language/Date/DaySuffix/26": {
"title": "$:/language/Date/DaySuffix/26",
"text": "th"
},
"$:/language/Date/DaySuffix/27": {
"title": "$:/language/Date/DaySuffix/27",
"text": "th"
},
"$:/language/Date/DaySuffix/28": {
"title": "$:/language/Date/DaySuffix/28",
"text": "th"
},
"$:/language/Date/DaySuffix/29": {
"title": "$:/language/Date/DaySuffix/29",
"text": "th"
},
"$:/language/Date/DaySuffix/30": {
"title": "$:/language/Date/DaySuffix/30",
"text": "th"
},
"$:/language/Date/DaySuffix/31": {
"title": "$:/language/Date/DaySuffix/31",
"text": "st"
},
"$:/language/Date/Long/Day/0": {
"title": "$:/language/Date/Long/Day/0",
"text": "Sunday"
},
"$:/language/Date/Long/Day/1": {
"title": "$:/language/Date/Long/Day/1",
"text": "Monday"
},
"$:/language/Date/Long/Day/2": {
"title": "$:/language/Date/Long/Day/2",
"text": "Tuesday"
},
"$:/language/Date/Long/Day/3": {
"title": "$:/language/Date/Long/Day/3",
"text": "Wednesday"
},
"$:/language/Date/Long/Day/4": {
"title": "$:/language/Date/Long/Day/4",
"text": "Thursday"
},
"$:/language/Date/Long/Day/5": {
"title": "$:/language/Date/Long/Day/5",
"text": "Friday"
},
"$:/language/Date/Long/Day/6": {
"title": "$:/language/Date/Long/Day/6",
"text": "Saturday"
},
"$:/language/Date/Long/Month/1": {
"title": "$:/language/Date/Long/Month/1",
"text": "January"
},
"$:/language/Date/Long/Month/2": {
"title": "$:/language/Date/Long/Month/2",
"text": "February"
},
"$:/language/Date/Long/Month/3": {
"title": "$:/language/Date/Long/Month/3",
"text": "March"
},
"$:/language/Date/Long/Month/4": {
"title": "$:/language/Date/Long/Month/4",
"text": "April"
},
"$:/language/Date/Long/Month/5": {
"title": "$:/language/Date/Long/Month/5",
"text": "May"
},
"$:/language/Date/Long/Month/6": {
"title": "$:/language/Date/Long/Month/6",
"text": "June"
},
"$:/language/Date/Long/Month/7": {
"title": "$:/language/Date/Long/Month/7",
"text": "July"
},
"$:/language/Date/Long/Month/8": {
"title": "$:/language/Date/Long/Month/8",
"text": "August"
},
"$:/language/Date/Long/Month/9": {
"title": "$:/language/Date/Long/Month/9",
"text": "September"
},
"$:/language/Date/Long/Month/10": {
"title": "$:/language/Date/Long/Month/10",
"text": "October"
},
"$:/language/Date/Long/Month/11": {
"title": "$:/language/Date/Long/Month/11",
"text": "November"
},
"$:/language/Date/Long/Month/12": {
"title": "$:/language/Date/Long/Month/12",
"text": "December"
},
"$:/language/Date/Period/am": {
"title": "$:/language/Date/Period/am",
"text": "am"
},
"$:/language/Date/Period/pm": {
"title": "$:/language/Date/Period/pm",
"text": "pm"
},
"$:/language/Date/Short/Day/0": {
"title": "$:/language/Date/Short/Day/0",
"text": "Sun"
},
"$:/language/Date/Short/Day/1": {
"title": "$:/language/Date/Short/Day/1",
"text": "Mon"
},
"$:/language/Date/Short/Day/2": {
"title": "$:/language/Date/Short/Day/2",
"text": "Tue"
},
"$:/language/Date/Short/Day/3": {
"title": "$:/language/Date/Short/Day/3",
"text": "Wed"
},
"$:/language/Date/Short/Day/4": {
"title": "$:/language/Date/Short/Day/4",
"text": "Thu"
},
"$:/language/Date/Short/Day/5": {
"title": "$:/language/Date/Short/Day/5",
"text": "Fri"
},
"$:/language/Date/Short/Day/6": {
"title": "$:/language/Date/Short/Day/6",
"text": "Sat"
},
"$:/language/Date/Short/Month/1": {
"title": "$:/language/Date/Short/Month/1",
"text": "Jan"
},
"$:/language/Date/Short/Month/2": {
"title": "$:/language/Date/Short/Month/2",
"text": "Feb"
},
"$:/language/Date/Short/Month/3": {
"title": "$:/language/Date/Short/Month/3",
"text": "Mar"
},
"$:/language/Date/Short/Month/4": {
"title": "$:/language/Date/Short/Month/4",
"text": "Apr"
},
"$:/language/Date/Short/Month/5": {
"title": "$:/language/Date/Short/Month/5",
"text": "May"
},
"$:/language/Date/Short/Month/6": {
"title": "$:/language/Date/Short/Month/6",
"text": "Jun"
},
"$:/language/Date/Short/Month/7": {
"title": "$:/language/Date/Short/Month/7",
"text": "Jul"
},
"$:/language/Date/Short/Month/8": {
"title": "$:/language/Date/Short/Month/8",
"text": "Aug"
},
"$:/language/Date/Short/Month/9": {
"title": "$:/language/Date/Short/Month/9",
"text": "Sep"
},
"$:/language/Date/Short/Month/10": {
"title": "$:/language/Date/Short/Month/10",
"text": "Oct"
},
"$:/language/Date/Short/Month/11": {
"title": "$:/language/Date/Short/Month/11",
"text": "Nov"
},
"$:/language/Date/Short/Month/12": {
"title": "$:/language/Date/Short/Month/12",
"text": "Dec"
},
"$:/language/RelativeDate/Future/Days": {
"title": "$:/language/RelativeDate/Future/Days",
"text": "<<period>> days from now"
},
"$:/language/RelativeDate/Future/Hours": {
"title": "$:/language/RelativeDate/Future/Hours",
"text": "<<period>> hours from now"
},
"$:/language/RelativeDate/Future/Minutes": {
"title": "$:/language/RelativeDate/Future/Minutes",
"text": "<<period>> minutes from now"
},
"$:/language/RelativeDate/Future/Months": {
"title": "$:/language/RelativeDate/Future/Months",
"text": "<<period>> months from now"
},
"$:/language/RelativeDate/Future/Second": {
"title": "$:/language/RelativeDate/Future/Second",
"text": "1 second from now"
},
"$:/language/RelativeDate/Future/Seconds": {
"title": "$:/language/RelativeDate/Future/Seconds",
"text": "<<period>> seconds from now"
},
"$:/language/RelativeDate/Future/Years": {
"title": "$:/language/RelativeDate/Future/Years",
"text": "<<period>> years from now"
},
"$:/language/RelativeDate/Past/Days": {
"title": "$:/language/RelativeDate/Past/Days",
"text": "<<period>> days ago"
},
"$:/language/RelativeDate/Past/Hours": {
"title": "$:/language/RelativeDate/Past/Hours",
"text": "<<period>> hours ago"
},
"$:/language/RelativeDate/Past/Minutes": {
"title": "$:/language/RelativeDate/Past/Minutes",
"text": "<<period>> minutes ago"
},
"$:/language/RelativeDate/Past/Months": {
"title": "$:/language/RelativeDate/Past/Months",
"text": "<<period>> months ago"
},
"$:/language/RelativeDate/Past/Second": {
"title": "$:/language/RelativeDate/Past/Second",
"text": "1 second ago"
},
"$:/language/RelativeDate/Past/Seconds": {
"title": "$:/language/RelativeDate/Past/Seconds",
"text": "<<period>> seconds ago"
},
"$:/language/RelativeDate/Past/Years": {
"title": "$:/language/RelativeDate/Past/Years",
"text": "<<period>> years ago"
},
"$:/language/Docs/ModuleTypes/allfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/allfilteroperator",
"text": "A sub-operator for the ''all'' filter operator."
},
"$:/language/Docs/ModuleTypes/animation": {
"title": "$:/language/Docs/ModuleTypes/animation",
"text": "Animations that may be used with the RevealWidget."
},
"$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
"title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
"text": "A bitmap editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/command": {
"title": "$:/language/Docs/ModuleTypes/command",
"text": "Commands that can be executed under Node.js."
},
"$:/language/Docs/ModuleTypes/config": {
"title": "$:/language/Docs/ModuleTypes/config",
"text": "Data to be inserted into `$tw.config`."
},
"$:/language/Docs/ModuleTypes/filteroperator": {
"title": "$:/language/Docs/ModuleTypes/filteroperator",
"text": "Individual filter operator methods."
},
"$:/language/Docs/ModuleTypes/global": {
"title": "$:/language/Docs/ModuleTypes/global",
"text": "Global data to be inserted into `$tw`."
},
"$:/language/Docs/ModuleTypes/info": {
"title": "$:/language/Docs/ModuleTypes/info",
"text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
},
"$:/language/Docs/ModuleTypes/isfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/isfilteroperator",
"text": "Operands for the ''is'' filter operator."
},
"$:/language/Docs/ModuleTypes/library": {
"title": "$:/language/Docs/ModuleTypes/library",
"text": "Generic module type for general purpose JavaScript modules."
},
"$:/language/Docs/ModuleTypes/macro": {
"title": "$:/language/Docs/ModuleTypes/macro",
"text": "JavaScript macro definitions."
},
"$:/language/Docs/ModuleTypes/parser": {
"title": "$:/language/Docs/ModuleTypes/parser",
"text": "Parsers for different content types."
},
"$:/language/Docs/ModuleTypes/saver": {
"title": "$:/language/Docs/ModuleTypes/saver",
"text": "Savers handle different methods for saving files from the browser."
},
"$:/language/Docs/ModuleTypes/startup": {
"title": "$:/language/Docs/ModuleTypes/startup",
"text": "Startup functions."
},
"$:/language/Docs/ModuleTypes/storyview": {
"title": "$:/language/Docs/ModuleTypes/storyview",
"text": "Story views customise the animation and behaviour of list widgets."
},
"$:/language/Docs/ModuleTypes/texteditoroperation": {
"title": "$:/language/Docs/ModuleTypes/texteditoroperation",
"text": "A text editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
"title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
"text": "Converts different content types into tiddlers."
},
"$:/language/Docs/ModuleTypes/tiddlerfield": {
"title": "$:/language/Docs/ModuleTypes/tiddlerfield",
"text": "Defines the behaviour of an individual tiddler field."
},
"$:/language/Docs/ModuleTypes/tiddlermethod": {
"title": "$:/language/Docs/ModuleTypes/tiddlermethod",
"text": "Adds methods to the `$tw.Tiddler` prototype."
},
"$:/language/Docs/ModuleTypes/upgrader": {
"title": "$:/language/Docs/ModuleTypes/upgrader",
"text": "Applies upgrade processing to tiddlers during an upgrade/import."
},
"$:/language/Docs/ModuleTypes/utils": {
"title": "$:/language/Docs/ModuleTypes/utils",
"text": "Adds methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/utils-node": {
"title": "$:/language/Docs/ModuleTypes/utils-node",
"text": "Adds Node.js-specific methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/widget": {
"title": "$:/language/Docs/ModuleTypes/widget",
"text": "Widgets encapsulate DOM rendering and refreshing."
},
"$:/language/Docs/ModuleTypes/wikimethod": {
"title": "$:/language/Docs/ModuleTypes/wikimethod",
"text": "Adds methods to `$tw.Wiki`."
},
"$:/language/Docs/ModuleTypes/wikirule": {
"title": "$:/language/Docs/ModuleTypes/wikirule",
"text": "Individual parser rules for the main WikiText parser."
},
"$:/language/Docs/PaletteColours/alert-background": {
"title": "$:/language/Docs/PaletteColours/alert-background",
"text": "Alert background"
},
"$:/language/Docs/PaletteColours/alert-border": {
"title": "$:/language/Docs/PaletteColours/alert-border",
"text": "Alert border"
},
"$:/language/Docs/PaletteColours/alert-highlight": {
"title": "$:/language/Docs/PaletteColours/alert-highlight",
"text": "Alert highlight"
},
"$:/language/Docs/PaletteColours/alert-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
"text": "Alert muted foreground"
},
"$:/language/Docs/PaletteColours/background": {
"title": "$:/language/Docs/PaletteColours/background",
"text": "General background"
},
"$:/language/Docs/PaletteColours/blockquote-bar": {
"title": "$:/language/Docs/PaletteColours/blockquote-bar",
"text": "Blockquote bar"
},
"$:/language/Docs/PaletteColours/button-background": {
"title": "$:/language/Docs/PaletteColours/button-background",
"text": "Default button background"
},
"$:/language/Docs/PaletteColours/button-border": {
"title": "$:/language/Docs/PaletteColours/button-border",
"text": "Default button border"
},
"$:/language/Docs/PaletteColours/button-foreground": {
"title": "$:/language/Docs/PaletteColours/button-foreground",
"text": "Default button foreground"
},
"$:/language/Docs/PaletteColours/dirty-indicator": {
"title": "$:/language/Docs/PaletteColours/dirty-indicator",
"text": "Unsaved changes indicator"
},
"$:/language/Docs/PaletteColours/code-background": {
"title": "$:/language/Docs/PaletteColours/code-background",
"text": "Code background"
},
"$:/language/Docs/PaletteColours/code-border": {
"title": "$:/language/Docs/PaletteColours/code-border",
"text": "Code border"
},
"$:/language/Docs/PaletteColours/code-foreground": {
"title": "$:/language/Docs/PaletteColours/code-foreground",
"text": "Code foreground"
},
"$:/language/Docs/PaletteColours/download-background": {
"title": "$:/language/Docs/PaletteColours/download-background",
"text": "Download button background"
},
"$:/language/Docs/PaletteColours/download-foreground": {
"title": "$:/language/Docs/PaletteColours/download-foreground",
"text": "Download button foreground"
},
"$:/language/Docs/PaletteColours/dragger-background": {
"title": "$:/language/Docs/PaletteColours/dragger-background",
"text": "Dragger background"
},
"$:/language/Docs/PaletteColours/dragger-foreground": {
"title": "$:/language/Docs/PaletteColours/dragger-foreground",
"text": "Dragger foreground"
},
"$:/language/Docs/PaletteColours/dropdown-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-background",
"text": "Dropdown background"
},
"$:/language/Docs/PaletteColours/dropdown-border": {
"title": "$:/language/Docs/PaletteColours/dropdown-border",
"text": "Dropdown border"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
"text": "Dropdown tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
"text": "Dropdown tab background"
},
"$:/language/Docs/PaletteColours/dropzone-background": {
"title": "$:/language/Docs/PaletteColours/dropzone-background",
"text": "Dropzone background"
},
"$:/language/Docs/PaletteColours/external-link-background-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-background-hover",
"text": "External link background hover"
},
"$:/language/Docs/PaletteColours/external-link-background-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-background-visited",
"text": "External link background visited"
},
"$:/language/Docs/PaletteColours/external-link-background": {
"title": "$:/language/Docs/PaletteColours/external-link-background",
"text": "External link background"
},
"$:/language/Docs/PaletteColours/external-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
"text": "External link foreground hover"
},
"$:/language/Docs/PaletteColours/external-link-foreground-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
"text": "External link foreground visited"
},
"$:/language/Docs/PaletteColours/external-link-foreground": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground",
"text": "External link foreground"
},
"$:/language/Docs/PaletteColours/foreground": {
"title": "$:/language/Docs/PaletteColours/foreground",
"text": "General foreground"
},
"$:/language/Docs/PaletteColours/message-background": {
"title": "$:/language/Docs/PaletteColours/message-background",
"text": "Message box background"
},
"$:/language/Docs/PaletteColours/message-border": {
"title": "$:/language/Docs/PaletteColours/message-border",
"text": "Message box border"
},
"$:/language/Docs/PaletteColours/message-foreground": {
"title": "$:/language/Docs/PaletteColours/message-foreground",
"text": "Message box foreground"
},
"$:/language/Docs/PaletteColours/modal-backdrop": {
"title": "$:/language/Docs/PaletteColours/modal-backdrop",
"text": "Modal backdrop"
},
"$:/language/Docs/PaletteColours/modal-background": {
"title": "$:/language/Docs/PaletteColours/modal-background",
"text": "Modal background"
},
"$:/language/Docs/PaletteColours/modal-border": {
"title": "$:/language/Docs/PaletteColours/modal-border",
"text": "Modal border"
},
"$:/language/Docs/PaletteColours/modal-footer-background": {
"title": "$:/language/Docs/PaletteColours/modal-footer-background",
"text": "Modal footer background"
},
"$:/language/Docs/PaletteColours/modal-footer-border": {
"title": "$:/language/Docs/PaletteColours/modal-footer-border",
"text": "Modal footer border"
},
"$:/language/Docs/PaletteColours/modal-header-border": {
"title": "$:/language/Docs/PaletteColours/modal-header-border",
"text": "Modal header border"
},
"$:/language/Docs/PaletteColours/muted-foreground": {
"title": "$:/language/Docs/PaletteColours/muted-foreground",
"text": "General muted foreground"
},
"$:/language/Docs/PaletteColours/notification-background": {
"title": "$:/language/Docs/PaletteColours/notification-background",
"text": "Notification background"
},
"$:/language/Docs/PaletteColours/notification-border": {
"title": "$:/language/Docs/PaletteColours/notification-border",
"text": "Notification border"
},
"$:/language/Docs/PaletteColours/page-background": {
"title": "$:/language/Docs/PaletteColours/page-background",
"text": "Page background"
},
"$:/language/Docs/PaletteColours/pre-background": {
"title": "$:/language/Docs/PaletteColours/pre-background",
"text": "Preformatted code background"
},
"$:/language/Docs/PaletteColours/pre-border": {
"title": "$:/language/Docs/PaletteColours/pre-border",
"text": "Preformatted code border"
},
"$:/language/Docs/PaletteColours/primary": {
"title": "$:/language/Docs/PaletteColours/primary",
"text": "General primary"
},
"$:/language/Docs/PaletteColours/sidebar-button-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
"text": "Sidebar button foreground"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
"text": "Sidebar controls foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
"text": "Sidebar controls foreground"
},
"$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
"text": "Sidebar foreground shadow"
},
"$:/language/Docs/PaletteColours/sidebar-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground",
"text": "Sidebar foreground"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
"text": "Sidebar muted foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
"text": "Sidebar muted foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
"text": "Sidebar tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
"text": "Sidebar tab background"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
"text": "Sidebar tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
"text": "Sidebar tab border"
},
"$:/language/Docs/PaletteColours/sidebar-tab-divider": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
"text": "Sidebar tab divider"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
"text": "Sidebar tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
"text": "Sidebar tab foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
"text": "Sidebar tiddler link foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
"text": "Sidebar tiddler link foreground"
},
"$:/language/Docs/PaletteColours/site-title-foreground": {
"title": "$:/language/Docs/PaletteColours/site-title-foreground",
"text": "Site title foreground"
},
"$:/language/Docs/PaletteColours/static-alert-foreground": {
"title": "$:/language/Docs/PaletteColours/static-alert-foreground",
"text": "Static alert foreground"
},
"$:/language/Docs/PaletteColours/tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/tab-background-selected",
"text": "Tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-background": {
"title": "$:/language/Docs/PaletteColours/tab-background",
"text": "Tab background"
},
"$:/language/Docs/PaletteColours/tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/tab-border-selected",
"text": "Tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-border": {
"title": "$:/language/Docs/PaletteColours/tab-border",
"text": "Tab border"
},
"$:/language/Docs/PaletteColours/tab-divider": {
"title": "$:/language/Docs/PaletteColours/tab-divider",
"text": "Tab divider"
},
"$:/language/Docs/PaletteColours/tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
"text": "Tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-foreground": {
"title": "$:/language/Docs/PaletteColours/tab-foreground",
"text": "Tab foreground"
},
"$:/language/Docs/PaletteColours/table-border": {
"title": "$:/language/Docs/PaletteColours/table-border",
"text": "Table border"
},
"$:/language/Docs/PaletteColours/table-footer-background": {
"title": "$:/language/Docs/PaletteColours/table-footer-background",
"text": "Table footer background"
},
"$:/language/Docs/PaletteColours/table-header-background": {
"title": "$:/language/Docs/PaletteColours/table-header-background",
"text": "Table header background"
},
"$:/language/Docs/PaletteColours/tag-background": {
"title": "$:/language/Docs/PaletteColours/tag-background",
"text": "Tag background"
},
"$:/language/Docs/PaletteColours/tag-foreground": {
"title": "$:/language/Docs/PaletteColours/tag-foreground",
"text": "Tag foreground"
},
"$:/language/Docs/PaletteColours/tiddler-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-background",
"text": "Tiddler background"
},
"$:/language/Docs/PaletteColours/tiddler-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-border",
"text": "Tiddler border"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
"text": "Tiddler controls foreground hover"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
"text": "Tiddler controls foreground for selected controls"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
"text": "Tiddler controls foreground"
},
"$:/language/Docs/PaletteColours/tiddler-editor-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
"text": "Tiddler editor background"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
"text": "Tiddler editor border image"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
"text": "Tiddler editor border"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
"text": "Tiddler editor background for even fields"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
"text": "Tiddler editor background for odd fields"
},
"$:/language/Docs/PaletteColours/tiddler-info-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-background",
"text": "Tiddler info panel background"
},
"$:/language/Docs/PaletteColours/tiddler-info-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-border",
"text": "Tiddler info panel border"
},
"$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
"text": "Tiddler info panel tab background"
},
"$:/language/Docs/PaletteColours/tiddler-link-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-background",
"text": "Tiddler link background"
},
"$:/language/Docs/PaletteColours/tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
"text": "Tiddler link foreground"
},
"$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
"text": "Tiddler subtitle foreground"
},
"$:/language/Docs/PaletteColours/tiddler-title-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
"text": "Tiddler title foreground"
},
"$:/language/Docs/PaletteColours/toolbar-new-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-new-button",
"text": "Toolbar 'new tiddler' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-options-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-options-button",
"text": "Toolbar 'options' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-save-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-save-button",
"text": "Toolbar 'save' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-info-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-info-button",
"text": "Toolbar 'info' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-edit-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
"text": "Toolbar 'edit' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-close-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-close-button",
"text": "Toolbar 'close' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-delete-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
"text": "Toolbar 'delete' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-cancel-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
"text": "Toolbar 'cancel' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-done-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-done-button",
"text": "Toolbar 'done' button foreground"
},
"$:/language/Docs/PaletteColours/untagged-background": {
"title": "$:/language/Docs/PaletteColours/untagged-background",
"text": "Untagged pill background"
},
"$:/language/Docs/PaletteColours/very-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/very-muted-foreground",
"text": "Very muted foreground"
},
"$:/language/EditTemplate/Body/External/Hint": {
"title": "$:/language/EditTemplate/Body/External/Hint",
"text": "This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
},
"$:/language/EditTemplate/Body/Placeholder": {
"title": "$:/language/EditTemplate/Body/Placeholder",
"text": "Type the text for this tiddler"
},
"$:/language/EditTemplate/Body/Preview/Type/Output": {
"title": "$:/language/EditTemplate/Body/Preview/Type/Output",
"text": "output"
},
"$:/language/EditTemplate/Field/Remove/Caption": {
"title": "$:/language/EditTemplate/Field/Remove/Caption",
"text": "remove field"
},
"$:/language/EditTemplate/Field/Remove/Hint": {
"title": "$:/language/EditTemplate/Field/Remove/Hint",
"text": "Remove field"
},
"$:/language/EditTemplate/Field/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Field/Dropdown/Caption",
"text": "field list"
},
"$:/language/EditTemplate/Field/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Field/Dropdown/Hint",
"text": "Show field list"
},
"$:/language/EditTemplate/Fields/Add/Button": {
"title": "$:/language/EditTemplate/Fields/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
"text": "field name"
},
"$:/language/EditTemplate/Fields/Add/Prompt": {
"title": "$:/language/EditTemplate/Fields/Add/Prompt",
"text": "Add a new field:"
},
"$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
"text": "field value"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/System": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
"text": "System fields"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/User": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
"text": "User fields"
},
"$:/language/EditTemplate/Shadow/Warning": {
"title": "$:/language/EditTemplate/Shadow/Warning",
"text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
},
"$:/language/EditTemplate/Shadow/OverriddenWarning": {
"title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
"text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
},
"$:/language/EditTemplate/Tags/Add/Button": {
"title": "$:/language/EditTemplate/Tags/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Tags/Add/Placeholder": {
"title": "$:/language/EditTemplate/Tags/Add/Placeholder",
"text": "tag name"
},
"$:/language/EditTemplate/Tags/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
"text": "tag list"
},
"$:/language/EditTemplate/Tags/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
"text": "Show tag list"
},
"$:/language/EditTemplate/Title/BadCharacterWarning": {
"title": "$:/language/EditTemplate/Title/BadCharacterWarning",
"text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
},
"$:/language/EditTemplate/Title/Exists/Prompt": {
"title": "$:/language/EditTemplate/Title/Exists/Prompt",
"text": "Target tiddler already exists"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
},
"$:/language/EditTemplate/Type/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Type/Dropdown/Caption",
"text": "content type list"
},
"$:/language/EditTemplate/Type/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Type/Dropdown/Hint",
"text": "Show content type list"
},
"$:/language/EditTemplate/Type/Delete/Caption": {
"title": "$:/language/EditTemplate/Type/Delete/Caption",
"text": "delete content type"
},
"$:/language/EditTemplate/Type/Delete/Hint": {
"title": "$:/language/EditTemplate/Type/Delete/Hint",
"text": "Delete content type"
},
"$:/language/EditTemplate/Type/Placeholder": {
"title": "$:/language/EditTemplate/Type/Placeholder",
"text": "content type"
},
"$:/language/EditTemplate/Type/Prompt": {
"title": "$:/language/EditTemplate/Type/Prompt",
"text": "Type:"
},
"$:/language/Exporters/StaticRiver": {
"title": "$:/language/Exporters/StaticRiver",
"text": "Static HTML"
},
"$:/language/Exporters/JsonFile": {
"title": "$:/language/Exporters/JsonFile",
"text": "JSON file"
},
"$:/language/Exporters/CsvFile": {
"title": "$:/language/Exporters/CsvFile",
"text": "CSV file"
},
"$:/language/Exporters/TidFile": {
"title": "$:/language/Exporters/TidFile",
"text": "\".tid\" file"
},
"$:/language/Docs/Fields/_canonical_uri": {
"title": "$:/language/Docs/Fields/_canonical_uri",
"text": "The full URI of an external image tiddler"
},
"$:/language/Docs/Fields/bag": {
"title": "$:/language/Docs/Fields/bag",
"text": "The name of the bag from which a tiddler came"
},
"$:/language/Docs/Fields/caption": {
"title": "$:/language/Docs/Fields/caption",
"text": "The text to be displayed on a tab or button"
},
"$:/language/Docs/Fields/color": {
"title": "$:/language/Docs/Fields/color",
"text": "The CSS color value associated with a tiddler"
},
"$:/language/Docs/Fields/component": {
"title": "$:/language/Docs/Fields/component",
"text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
},
"$:/language/Docs/Fields/current-tiddler": {
"title": "$:/language/Docs/Fields/current-tiddler",
"text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
},
"$:/language/Docs/Fields/created": {
"title": "$:/language/Docs/Fields/created",
"text": "The date a tiddler was created"
},
"$:/language/Docs/Fields/creator": {
"title": "$:/language/Docs/Fields/creator",
"text": "The name of the person who created a tiddler"
},
"$:/language/Docs/Fields/dependents": {
"title": "$:/language/Docs/Fields/dependents",
"text": "For a plugin, lists the dependent plugin titles"
},
"$:/language/Docs/Fields/description": {
"title": "$:/language/Docs/Fields/description",
"text": "The descriptive text for a plugin, or a modal dialogue"
},
"$:/language/Docs/Fields/draft.of": {
"title": "$:/language/Docs/Fields/draft.of",
"text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
},
"$:/language/Docs/Fields/draft.title": {
"title": "$:/language/Docs/Fields/draft.title",
"text": "For draft tiddlers, contains the proposed new title of the tiddler"
},
"$:/language/Docs/Fields/footer": {
"title": "$:/language/Docs/Fields/footer",
"text": "The footer text for a wizard"
},
"$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against": {
"title": "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against",
"text": "A temporary storage field used in [[$:/core/templates/static.content]]"
},
"$:/language/Docs/Fields/icon": {
"title": "$:/language/Docs/Fields/icon",
"text": "The title of the tiddler containing the icon associated with a tiddler"
},
"$:/language/Docs/Fields/library": {
"title": "$:/language/Docs/Fields/library",
"text": "If set to \"yes\" indicates that a tiddler should be saved as a JavaScript library"
},
"$:/language/Docs/Fields/list": {
"title": "$:/language/Docs/Fields/list",
"text": "An ordered list of tiddler titles associated with a tiddler"
},
"$:/language/Docs/Fields/list-before": {
"title": "$:/language/Docs/Fields/list-before",
"text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
},
"$:/language/Docs/Fields/list-after": {
"title": "$:/language/Docs/Fields/list-after",
"text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty"
},
"$:/language/Docs/Fields/modified": {
"title": "$:/language/Docs/Fields/modified",
"text": "The date and time at which a tiddler was last modified"
},
"$:/language/Docs/Fields/modifier": {
"title": "$:/language/Docs/Fields/modifier",
"text": "The tiddler title associated with the person who last modified a tiddler"
},
"$:/language/Docs/Fields/name": {
"title": "$:/language/Docs/Fields/name",
"text": "The human readable name associated with a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-priority": {
"title": "$:/language/Docs/Fields/plugin-priority",
"text": "A numerical value indicating the priority of a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-type": {
"title": "$:/language/Docs/Fields/plugin-type",
"text": "The type of plugin in a plugin tiddler"
},
"$:/language/Docs/Fields/revision": {
"title": "$:/language/Docs/Fields/revision",
"text": "The revision of the tiddler held at the server"
},
"$:/language/Docs/Fields/released": {
"title": "$:/language/Docs/Fields/released",
"text": "Date of a TiddlyWiki release"
},
"$:/language/Docs/Fields/source": {
"title": "$:/language/Docs/Fields/source",
"text": "The source URL associated with a tiddler"
},
"$:/language/Docs/Fields/subtitle": {
"title": "$:/language/Docs/Fields/subtitle",
"text": "The subtitle text for a wizard"
},
"$:/language/Docs/Fields/tags": {
"title": "$:/language/Docs/Fields/tags",
"text": "A list of tags associated with a tiddler"
},
"$:/language/Docs/Fields/text": {
"title": "$:/language/Docs/Fields/text",
"text": "The body text of a tiddler"
},
"$:/language/Docs/Fields/title": {
"title": "$:/language/Docs/Fields/title",
"text": "The unique name of a tiddler"
},
"$:/language/Docs/Fields/type": {
"title": "$:/language/Docs/Fields/type",
"text": "The content type of a tiddler"
},
"$:/language/Docs/Fields/version": {
"title": "$:/language/Docs/Fields/version",
"text": "Version information for a plugin"
},
"$:/language/Filters/AllTiddlers": {
"title": "$:/language/Filters/AllTiddlers",
"text": "All tiddlers except system tiddlers"
},
"$:/language/Filters/RecentSystemTiddlers": {
"title": "$:/language/Filters/RecentSystemTiddlers",
"text": "Recently modified tiddlers, including system tiddlers"
},
"$:/language/Filters/RecentTiddlers": {
"title": "$:/language/Filters/RecentTiddlers",
"text": "Recently modified tiddlers"
},
"$:/language/Filters/AllTags": {
"title": "$:/language/Filters/AllTags",
"text": "All tags except system tags"
},
"$:/language/Filters/Missing": {
"title": "$:/language/Filters/Missing",
"text": "Missing tiddlers"
},
"$:/language/Filters/Drafts": {
"title": "$:/language/Filters/Drafts",
"text": "Draft tiddlers"
},
"$:/language/Filters/Orphans": {
"title": "$:/language/Filters/Orphans",
"text": "Orphan tiddlers"
},
"$:/language/Filters/SystemTiddlers": {
"title": "$:/language/Filters/SystemTiddlers",
"text": "System tiddlers"
},
"$:/language/Filters/ShadowTiddlers": {
"title": "$:/language/Filters/ShadowTiddlers",
"text": "Shadow tiddlers"
},
"$:/language/Filters/OverriddenShadowTiddlers": {
"title": "$:/language/Filters/OverriddenShadowTiddlers",
"text": "Overridden shadow tiddlers"
},
"$:/language/Filters/SystemTags": {
"title": "$:/language/Filters/SystemTags",
"text": "System tags"
},
"$:/language/Filters/StoryList": {
"title": "$:/language/Filters/StoryList",
"text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
},
"$:/language/Filters/TypedTiddlers": {
"title": "$:/language/Filters/TypedTiddlers",
"text": "Non wiki-text tiddlers"
},
"GettingStarted": {
"title": "GettingStarted",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
},
"$:/language/Help/build": {
"title": "$:/language/Help/build",
"description": "Automatically run configured commands",
"text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
},
"$:/language/Help/clearpassword": {
"title": "$:/language/Help/clearpassword",
"description": "Clear a password for subsequent crypto operations",
"text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
},
"$:/language/Help/default": {
"title": "$:/language/Help/default",
"text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
},
"$:/language/Help/editions": {
"title": "$:/language/Help/editions",
"description": "Lists the available editions of TiddlyWiki",
"text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
},
"$:/language/Help/fetch": {
"title": "$:/language/Help/fetch",
"description": "Fetch tiddlers from wiki by URL",
"text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\nThe \"file\" and \"files\" variants fetch the specified files and attempt to import the tiddlers within them (the same processing as if the files were dragged into the browser window). The \"raw-file\" and \"raw-files\" variants fetch the specified files and then store the raw file data in tiddlers, without applying the import logic.\n\nWith the \"file\" and \"raw-file\" variants only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" and \"raw-files\" variants, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nFor the \"file\" and \"files\" variants, the `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nFor all variants, the `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from https://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\nThe following example retrieves the \"favicon\" file from tiddlywiki.com and saves it in a file called \"output.ico\". Note that the intermediate tiddler \"Icon Tiddler\" is quoted in the \"--fetch\" command because it is being used as a transformation filter to replace the default title, while there are no quotes for the \"--savetiddler\" command because it is being used directly as a title.\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n\n"
},
"$:/language/Help/help": {
"title": "$:/language/Help/help",
"description": "Display help for TiddlyWiki commands",
"text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
},
"$:/language/Help/import": {
"title": "$:/language/Help/import",
"description": "Import tiddlers from a file",
"text": "Import tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The deserializer must be explicitly specified, unlike the `load` command which infers the deserializer from the file extension.\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\nThe deserializers in the core include:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nThe title of the imported tiddler defaults to the filename.\n\nThe encoding defaults to \"utf8\", but can be \"base64\" for importing binary files.\n\nNote that TiddlyWiki will not import an older version of an already loaded plugin.\n"
},
"$:/language/Help/init": {
"title": "$:/language/Help/init",
"description": "Initialise a new wiki folder",
"text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
},
"$:/language/Help/load": {
"title": "$:/language/Help/load",
"description": "Load tiddlers from a file",
"text": "Load tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The processing applied to incoming files is determined by the file extension. Use the alternative `import` command if you need to specify the deserializer and encoding explicitly.\n\n```\n--load <filepath>\n--load <dirpath>\n```\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
},
"$:/language/Help/makelibrary": {
"title": "$:/language/Help/makelibrary",
"description": "Construct library plugin required by upgrade process",
"text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
},
"$:/language/Help/notfound": {
"title": "$:/language/Help/notfound",
"text": "No such help item"
},
"$:/language/Help/output": {
"title": "$:/language/Help/output",
"description": "Set the base output directory for subsequent commands",
"text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
},
"$:/language/Help/password": {
"title": "$:/language/Help/password",
"description": "Set a password for subsequent crypto operations",
"text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
},
"$:/language/Help/render": {
"title": "$:/language/Help/render",
"description": "Renders individual tiddlers to files",
"text": "Render individual tiddlers identified by a filter and save the results to the specified files.\n\nOptionally, the title of a template tiddler can be specified. In this case, instead of directly rendering each tiddler, the template tiddler is rendered with the \"currentTiddler\" variable set to the title of the tiddler that is being rendered.\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be rendered\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]addsuffix[.html]]`, which uses the unchanged tiddler title as the filename\n* ''template'': Optional template through which each tiddler is rendered\n* ''render-type'': Optional render type: `text/html` (the default) returns the full HTML text and `text/plain` just returns the text content (ie it ignores HTML tags and other unprintable material)\n* ''name'': Name of optional variable\n* ''value'': Value of optional variable\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated\n\nExamples:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- renders all non-system tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles and the extension HTML\n\n"
},
"$:/language/Help/rendertiddler": {
"title": "$:/language/Help/rendertiddler",
"description": "Render an individual tiddler as a specified ContentType",
"text": "(Note: The `--rendertiddler` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
},
"$:/language/Help/rendertiddlers": {
"title": "$:/language/Help/rendertiddlers",
"description": "Render tiddlers matching a filter to a specified ContentType",
"text": "(Note: The `--rendertiddlers` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
},
"$:/language/Help/save": {
"title": "$:/language/Help/save",
"description": "Saves individual raw tiddlers to files",
"text": "Saves individual tiddlers identified by a filter in their raw text or binary format to the specified files.\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be saved\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]]`, which uses the unchanged tiddler title as the filename\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated\n\nExamples:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- saves all non-system image tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles\n"
},
"$:/language/Help/savetiddler": {
"title": "$:/language/Help/savetiddler",
"description": "Saves a raw tiddler to a file",
"text": "(Note: The `--savetiddler` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
},
"$:/language/Help/savetiddlers": {
"title": "$:/language/Help/savetiddlers",
"description": "Saves a group of raw tiddlers to a directory",
"text": "(Note: The `--savetiddlers` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
},
"$:/language/Help/server": {
"title": "$:/language/Help/server",
"description": "Provides an HTTP server interface to TiddlyWiki",
"text": "The server built in to TiddlyWiki5 is very simple. Although compatible with TiddlyWeb it doesn't support many of the features needed for robust Internet-facing usage.\n\nAt the root, it serves a rendering of a specified tiddler. Away from the root, it serves individual tiddlers encoded in JSON, and supports the basic HTTP operations for `GET`, `PUT` and `DELETE`.\n\n```\n--server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host> <pathprefix>\n```\n\nThe parameters are:\n\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''roottiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''rendertype'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''servetype'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''pathprefix'' - optional prefix for paths\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation isn't suitable for general use.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password:\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port. It can be useful to use an environment variable to pass the port number to the Node.js process. This example references an environment variable called \"MY_PORT_NUMBER\":\n\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n"
},
"$:/language/Help/setfield": {
"title": "$:/language/Help/setfield",
"description": "Prepares external tiddlers for use",
"text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
},
"$:/language/Help/unpackplugin": {
"title": "$:/language/Help/unpackplugin",
"description": "Unpack the payload tiddlers from a plugin",
"text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
},
"$:/language/Help/verbose": {
"title": "$:/language/Help/verbose",
"description": "Triggers verbose output mode",
"text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
},
"$:/language/Help/version": {
"title": "$:/language/Help/version",
"description": "Displays the version number of TiddlyWiki",
"text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
},
"$:/language/Import/Imported/Hint": {
"title": "$:/language/Import/Imported/Hint",
"text": "The following tiddlers were imported:"
},
"$:/language/Import/Listing/Cancel/Caption": {
"title": "$:/language/Import/Listing/Cancel/Caption",
"text": "Cancel"
},
"$:/language/Import/Listing/Hint": {
"title": "$:/language/Import/Listing/Hint",
"text": "These tiddlers are ready to import:"
},
"$:/language/Import/Listing/Import/Caption": {
"title": "$:/language/Import/Listing/Import/Caption",
"text": "Import"
},
"$:/language/Import/Listing/Select/Caption": {
"title": "$:/language/Import/Listing/Select/Caption",
"text": "Select"
},
"$:/language/Import/Listing/Status/Caption": {
"title": "$:/language/Import/Listing/Status/Caption",
"text": "Status"
},
"$:/language/Import/Listing/Title/Caption": {
"title": "$:/language/Import/Listing/Title/Caption",
"text": "Title"
},
"$:/language/Import/Listing/Preview": {
"title": "$:/language/Import/Listing/Preview",
"text": "Preview:"
},
"$:/language/Import/Listing/Preview/Text": {
"title": "$:/language/Import/Listing/Preview/Text",
"text": "Text"
},
"$:/language/Import/Listing/Preview/TextRaw": {
"title": "$:/language/Import/Listing/Preview/TextRaw",
"text": "Text (Raw)"
},
"$:/language/Import/Listing/Preview/Fields": {
"title": "$:/language/Import/Listing/Preview/Fields",
"text": "Fields"
},
"$:/language/Import/Listing/Preview/Diff": {
"title": "$:/language/Import/Listing/Preview/Diff",
"text": "Diff"
},
"$:/language/Import/Listing/Preview/DiffFields": {
"title": "$:/language/Import/Listing/Preview/DiffFields",
"text": "Diff (Fields)"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
"text": "Blocked incompatible or obsolete plugin"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
"text": "Blocked plugin (due to incoming <<incoming>> being older than existing <<existing>>)"
},
"$:/language/Import/Upgrader/Plugins/Upgraded": {
"title": "$:/language/Import/Upgrader/Plugins/Upgraded",
"text": "Upgraded plugin from <<incoming>> to <<upgraded>>"
},
"$:/language/Import/Upgrader/State/Suppressed": {
"title": "$:/language/Import/Upgrader/State/Suppressed",
"text": "Blocked temporary state tiddler"
},
"$:/language/Import/Upgrader/System/Suppressed": {
"title": "$:/language/Import/Upgrader/System/Suppressed",
"text": "Blocked system tiddler"
},
"$:/language/Import/Upgrader/ThemeTweaks/Created": {
"title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
"text": "Migrated theme tweak from <$text text=<<from>>/>"
},
"$:/language/AboveStory/ClassicPlugin/Warning": {
"title": "$:/language/AboveStory/ClassicPlugin/Warning",
"text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
},
"$:/language/BinaryWarning/Prompt": {
"title": "$:/language/BinaryWarning/Prompt",
"text": "This tiddler contains binary data"
},
"$:/language/ClassicWarning/Hint": {
"title": "$:/language/ClassicWarning/Hint",
"text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See https://tiddlywiki.com/static/Upgrading.html for more details."
},
"$:/language/ClassicWarning/Upgrade/Caption": {
"title": "$:/language/ClassicWarning/Upgrade/Caption",
"text": "upgrade"
},
"$:/language/CloseAll/Button": {
"title": "$:/language/CloseAll/Button",
"text": "close all"
},
"$:/language/ColourPicker/Recent": {
"title": "$:/language/ColourPicker/Recent",
"text": "Recent:"
},
"$:/language/ConfirmCancelTiddler": {
"title": "$:/language/ConfirmCancelTiddler",
"text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmDeleteTiddler": {
"title": "$:/language/ConfirmDeleteTiddler",
"text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmOverwriteTiddler": {
"title": "$:/language/ConfirmOverwriteTiddler",
"text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmEditShadowTiddler": {
"title": "$:/language/ConfirmEditShadowTiddler",
"text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
},
"$:/language/Count": {
"title": "$:/language/Count",
"text": "count"
},
"$:/language/DefaultNewTiddlerTitle": {
"title": "$:/language/DefaultNewTiddlerTitle",
"text": "New Tiddler"
},
"$:/language/Diffs/CountMessage": {
"title": "$:/language/Diffs/CountMessage",
"text": "<<diff-count>> differences"
},
"$:/language/DropMessage": {
"title": "$:/language/DropMessage",
"text": "Drop here (or use the 'Escape' key to cancel)"
},
"$:/language/Encryption/Cancel": {
"title": "$:/language/Encryption/Cancel",
"text": "Cancel"
},
"$:/language/Encryption/ConfirmClearPassword": {
"title": "$:/language/Encryption/ConfirmClearPassword",
"text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
},
"$:/language/Encryption/PromptSetPassword": {
"title": "$:/language/Encryption/PromptSetPassword",
"text": "Set a new password for this TiddlyWiki"
},
"$:/language/Encryption/Username": {
"title": "$:/language/Encryption/Username",
"text": "Username"
},
"$:/language/Encryption/Password": {
"title": "$:/language/Encryption/Password",
"text": "Password"
},
"$:/language/Encryption/RepeatPassword": {
"title": "$:/language/Encryption/RepeatPassword",
"text": "Repeat password"
},
"$:/language/Encryption/PasswordNoMatch": {
"title": "$:/language/Encryption/PasswordNoMatch",
"text": "Passwords do not match"
},
"$:/language/Encryption/SetPassword": {
"title": "$:/language/Encryption/SetPassword",
"text": "Set password"
},
"$:/language/Error/Caption": {
"title": "$:/language/Error/Caption",
"text": "Error"
},
"$:/language/Error/EditConflict": {
"title": "$:/language/Error/EditConflict",
"text": "File changed on server"
},
"$:/language/Error/Filter": {
"title": "$:/language/Error/Filter",
"text": "Filter error"
},
"$:/language/Error/FilterSyntax": {
"title": "$:/language/Error/FilterSyntax",
"text": "Syntax error in filter expression"
},
"$:/language/Error/IsFilterOperator": {
"title": "$:/language/Error/IsFilterOperator",
"text": "Filter Error: Unknown operand for the 'is' filter operator"
},
"$:/language/Error/LoadingPluginLibrary": {
"title": "$:/language/Error/LoadingPluginLibrary",
"text": "Error loading plugin library"
},
"$:/language/Error/RecursiveTransclusion": {
"title": "$:/language/Error/RecursiveTransclusion",
"text": "Recursive transclusion error in transclude widget"
},
"$:/language/Error/RetrievingSkinny": {
"title": "$:/language/Error/RetrievingSkinny",
"text": "Error retrieving skinny tiddler list"
},
"$:/language/Error/SavingToTWEdit": {
"title": "$:/language/Error/SavingToTWEdit",
"text": "Error saving to TWEdit"
},
"$:/language/Error/WhileSaving": {
"title": "$:/language/Error/WhileSaving",
"text": "Error while saving"
},
"$:/language/Error/XMLHttpRequest": {
"title": "$:/language/Error/XMLHttpRequest",
"text": "XMLHttpRequest error code"
},
"$:/language/InternalJavaScriptError/Title": {
"title": "$:/language/InternalJavaScriptError/Title",
"text": "Internal JavaScript Error"
},
"$:/language/InternalJavaScriptError/Hint": {
"title": "$:/language/InternalJavaScriptError/Hint",
"text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
},
"$:/language/InvalidFieldName": {
"title": "$:/language/InvalidFieldName",
"text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
},
"$:/language/LazyLoadingWarning": {
"title": "$:/language/LazyLoadingWarning",
"text": "<p>Trying to load external content from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear, either the tiddler content type doesn't match the type of the external content, or you may be using a browser that doesn't support external content for wikis loaded as standalone files. See https://tiddlywiki.com/#ExternalText</p>"
},
"$:/language/LoginToTiddlySpace": {
"title": "$:/language/LoginToTiddlySpace",
"text": "Login to TiddlySpace"
},
"$:/language/Manager/Controls/FilterByTag/None": {
"title": "$:/language/Manager/Controls/FilterByTag/None",
"text": "(none)"
},
"$:/language/Manager/Controls/FilterByTag/Prompt": {
"title": "$:/language/Manager/Controls/FilterByTag/Prompt",
"text": "Filter by tag:"
},
"$:/language/Manager/Controls/Order/Prompt": {
"title": "$:/language/Manager/Controls/Order/Prompt",
"text": "Reverse order"
},
"$:/language/Manager/Controls/Search/Placeholder": {
"title": "$:/language/Manager/Controls/Search/Placeholder",
"text": "Search"
},
"$:/language/Manager/Controls/Search/Prompt": {
"title": "$:/language/Manager/Controls/Search/Prompt",
"text": "Search:"
},
"$:/language/Manager/Controls/Show/Option/Tags": {
"title": "$:/language/Manager/Controls/Show/Option/Tags",
"text": "tags"
},
"$:/language/Manager/Controls/Show/Option/Tiddlers": {
"title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
"text": "tiddlers"
},
"$:/language/Manager/Controls/Show/Prompt": {
"title": "$:/language/Manager/Controls/Show/Prompt",
"text": "Show:"
},
"$:/language/Manager/Controls/Sort/Prompt": {
"title": "$:/language/Manager/Controls/Sort/Prompt",
"text": "Sort by:"
},
"$:/language/Manager/Item/Colour": {
"title": "$:/language/Manager/Item/Colour",
"text": "Colour"
},
"$:/language/Manager/Item/Fields": {
"title": "$:/language/Manager/Item/Fields",
"text": "Fields"
},
"$:/language/Manager/Item/Icon/None": {
"title": "$:/language/Manager/Item/Icon/None",
"text": "(none)"
},
"$:/language/Manager/Item/Icon": {
"title": "$:/language/Manager/Item/Icon",
"text": "Icon"
},
"$:/language/Manager/Item/RawText": {
"title": "$:/language/Manager/Item/RawText",
"text": "Raw text"
},
"$:/language/Manager/Item/Tags": {
"title": "$:/language/Manager/Item/Tags",
"text": "Tags"
},
"$:/language/Manager/Item/Tools": {
"title": "$:/language/Manager/Item/Tools",
"text": "Tools"
},
"$:/language/Manager/Item/WikifiedText": {
"title": "$:/language/Manager/Item/WikifiedText",
"text": "Wikified text"
},
"$:/language/MissingTiddler/Hint": {
"title": "$:/language/MissingTiddler/Hint",
"text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" -- click {{||$:/core/ui/Buttons/edit}} to create"
},
"$:/language/No": {
"title": "$:/language/No",
"text": "No"
},
"$:/language/OfficialPluginLibrary": {
"title": "$:/language/OfficialPluginLibrary",
"text": "Official ~TiddlyWiki Plugin Library"
},
"$:/language/OfficialPluginLibrary/Hint": {
"title": "$:/language/OfficialPluginLibrary/Hint",
"text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
},
"$:/language/PluginReloadWarning": {
"title": "$:/language/PluginReloadWarning",
"text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to plugins to take effect"
},
"$:/language/RecentChanges/DateFormat": {
"title": "$:/language/RecentChanges/DateFormat",
"text": "DDth MMM YYYY"
},
"$:/language/SystemTiddler/Tooltip": {
"title": "$:/language/SystemTiddler/Tooltip",
"text": "This is a system tiddler"
},
"$:/language/SystemTiddlers/Include/Prompt": {
"title": "$:/language/SystemTiddlers/Include/Prompt",
"text": "Include system tiddlers"
},
"$:/language/TagManager/Colour/Heading": {
"title": "$:/language/TagManager/Colour/Heading",
"text": "Colour"
},
"$:/language/TagManager/Count/Heading": {
"title": "$:/language/TagManager/Count/Heading",
"text": "Count"
},
"$:/language/TagManager/Icon/Heading": {
"title": "$:/language/TagManager/Icon/Heading",
"text": "Icon"
},
"$:/language/TagManager/Info/Heading": {
"title": "$:/language/TagManager/Info/Heading",
"text": "Info"
},
"$:/language/TagManager/Tag/Heading": {
"title": "$:/language/TagManager/Tag/Heading",
"text": "Tag"
},
"$:/language/Tiddler/DateFormat": {
"title": "$:/language/Tiddler/DateFormat",
"text": "DDth MMM YYYY at hh12:0mmam"
},
"$:/language/UnsavedChangesWarning": {
"title": "$:/language/UnsavedChangesWarning",
"text": "You have unsaved changes in TiddlyWiki"
},
"$:/language/Yes": {
"title": "$:/language/Yes",
"text": "Yes"
},
"$:/language/Modals/Download": {
"title": "$:/language/Modals/Download",
"subtitle": "Download changes",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/DownloadingChanges.html",
"text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"
},
"$:/language/Modals/SaveInstructions": {
"title": "$:/language/Modals/SaveInstructions",
"subtitle": "Save your work",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/SavingChanges.html",
"text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"
},
"$:/config/NewJournal/Title": {
"title": "$:/config/NewJournal/Title",
"text": "DDth MMM YYYY"
},
"$:/config/NewJournal/Text": {
"title": "$:/config/NewJournal/Text",
"text": ""
},
"$:/config/NewJournal/Tags": {
"title": "$:/config/NewJournal/Tags",
"text": "Journal"
},
"$:/language/Notifications/Save/Done": {
"title": "$:/language/Notifications/Save/Done",
"text": "Saved wiki"
},
"$:/language/Notifications/Save/Starting": {
"title": "$:/language/Notifications/Save/Starting",
"text": "Starting to save wiki"
},
"$:/language/Notifications/CopiedToClipboard/Succeeded": {
"title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
"text": "Copied!"
},
"$:/language/Notifications/CopiedToClipboard/Failed": {
"title": "$:/language/Notifications/CopiedToClipboard/Failed",
"text": "Failed to copy to clipboard!"
},
"$:/language/Search/DefaultResults/Caption": {
"title": "$:/language/Search/DefaultResults/Caption",
"text": "List"
},
"$:/language/Search/Filter/Caption": {
"title": "$:/language/Search/Filter/Caption",
"text": "Filter"
},
"$:/language/Search/Filter/Hint": {
"title": "$:/language/Search/Filter/Hint",
"text": "Search via a [[filter expression|https://tiddlywiki.com/static/Filters.html]]"
},
"$:/language/Search/Filter/Matches": {
"title": "$:/language/Search/Filter/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches": {
"title": "$:/language/Search/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches/All": {
"title": "$:/language/Search/Matches/All",
"text": "All matches:"
},
"$:/language/Search/Matches/Title": {
"title": "$:/language/Search/Matches/Title",
"text": "Title matches:"
},
"$:/language/Search/Search": {
"title": "$:/language/Search/Search",
"text": "Search"
},
"$:/language/Search/Search/TooShort": {
"title": "$:/language/Search/Search/TooShort",
"text": "Search text too short"
},
"$:/language/Search/Shadows/Caption": {
"title": "$:/language/Search/Shadows/Caption",
"text": "Shadows"
},
"$:/language/Search/Shadows/Hint": {
"title": "$:/language/Search/Shadows/Hint",
"text": "Search for shadow tiddlers"
},
"$:/language/Search/Shadows/Matches": {
"title": "$:/language/Search/Shadows/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Standard/Caption": {
"title": "$:/language/Search/Standard/Caption",
"text": "Standard"
},
"$:/language/Search/Standard/Hint": {
"title": "$:/language/Search/Standard/Hint",
"text": "Search for standard tiddlers"
},
"$:/language/Search/Standard/Matches": {
"title": "$:/language/Search/Standard/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/System/Caption": {
"title": "$:/language/Search/System/Caption",
"text": "System"
},
"$:/language/Search/System/Hint": {
"title": "$:/language/Search/System/Hint",
"text": "Search for system tiddlers"
},
"$:/language/Search/System/Matches": {
"title": "$:/language/Search/System/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/SideBar/All/Caption": {
"title": "$:/language/SideBar/All/Caption",
"text": "All"
},
"$:/language/SideBar/Contents/Caption": {
"title": "$:/language/SideBar/Contents/Caption",
"text": "Contents"
},
"$:/language/SideBar/Drafts/Caption": {
"title": "$:/language/SideBar/Drafts/Caption",
"text": "Drafts"
},
"$:/language/SideBar/Explorer/Caption": {
"title": "$:/language/SideBar/Explorer/Caption",
"text": "Explorer"
},
"$:/language/SideBar/Missing/Caption": {
"title": "$:/language/SideBar/Missing/Caption",
"text": "Missing"
},
"$:/language/SideBar/More/Caption": {
"title": "$:/language/SideBar/More/Caption",
"text": "More"
},
"$:/language/SideBar/Open/Caption": {
"title": "$:/language/SideBar/Open/Caption",
"text": "Open"
},
"$:/language/SideBar/Orphans/Caption": {
"title": "$:/language/SideBar/Orphans/Caption",
"text": "Orphans"
},
"$:/language/SideBar/Recent/Caption": {
"title": "$:/language/SideBar/Recent/Caption",
"text": "Recent"
},
"$:/language/SideBar/Shadows/Caption": {
"title": "$:/language/SideBar/Shadows/Caption",
"text": "Shadows"
},
"$:/language/SideBar/System/Caption": {
"title": "$:/language/SideBar/System/Caption",
"text": "System"
},
"$:/language/SideBar/Tags/Caption": {
"title": "$:/language/SideBar/Tags/Caption",
"text": "Tags"
},
"$:/language/SideBar/Tags/Untagged/Caption": {
"title": "$:/language/SideBar/Tags/Untagged/Caption",
"text": "untagged"
},
"$:/language/SideBar/Tools/Caption": {
"title": "$:/language/SideBar/Tools/Caption",
"text": "Tools"
},
"$:/language/SideBar/Types/Caption": {
"title": "$:/language/SideBar/Types/Caption",
"text": "Types"
},
"$:/SiteSubtitle": {
"title": "$:/SiteSubtitle",
"text": "a non-linear personal web notebook"
},
"$:/SiteTitle": {
"title": "$:/SiteTitle",
"text": "My ~TiddlyWiki"
},
"$:/language/Snippets/ListByTag": {
"title": "$:/language/Snippets/ListByTag",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "List of tiddlers by tag",
"text": "<<list-links \"[tag[task]sort[title]]\">>\n"
},
"$:/language/Snippets/MacroDefinition": {
"title": "$:/language/Snippets/MacroDefinition",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Macro definition",
"text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
},
"$:/language/Snippets/Table4x3": {
"title": "$:/language/Snippets/Table4x3",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table with 4 columns by 3 rows",
"text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
},
"$:/language/Snippets/TableOfContents": {
"title": "$:/language/Snippets/TableOfContents",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table of Contents",
"text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
},
"$:/language/ThemeTweaks/ThemeTweaks": {
"title": "$:/language/ThemeTweaks/ThemeTweaks",
"text": "Theme Tweaks"
},
"$:/language/ThemeTweaks/ThemeTweaks/Hint": {
"title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
"text": "You can tweak certain aspects of the ''Vanilla'' theme."
},
"$:/language/ThemeTweaks/Options": {
"title": "$:/language/ThemeTweaks/Options",
"text": "Options"
},
"$:/language/ThemeTweaks/Options/SidebarLayout": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout",
"text": "Sidebar layout"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
"text": "Fixed story, fluid sidebar"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
"text": "Fluid story, fixed sidebar"
},
"$:/language/ThemeTweaks/Options/StickyTitles": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles",
"text": "Sticky titles"
},
"$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
"text": "Causes tiddler titles to \"stick\" to the top of the browser window"
},
"$:/language/ThemeTweaks/Options/CodeWrapping": {
"title": "$:/language/ThemeTweaks/Options/CodeWrapping",
"text": "Wrap long lines in code blocks"
},
"$:/language/ThemeTweaks/Settings": {
"title": "$:/language/ThemeTweaks/Settings",
"text": "Settings"
},
"$:/language/ThemeTweaks/Settings/FontFamily": {
"title": "$:/language/ThemeTweaks/Settings/FontFamily",
"text": "Font family"
},
"$:/language/ThemeTweaks/Settings/CodeFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
"text": "Code font family"
},
"$:/language/ThemeTweaks/Settings/EditorFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
"text": "Editor font family"
},
"$:/language/ThemeTweaks/Settings/BackgroundImage": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
"text": "Page background image"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
"text": "Page background image attachment"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
"text": "Scroll with tiddlers"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
"text": "Fixed to window"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
"text": "Page background image size"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
"text": "Auto"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
"text": "Cover"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
"text": "Contain"
},
"$:/language/ThemeTweaks/Metrics": {
"title": "$:/language/ThemeTweaks/Metrics",
"text": "Sizes"
},
"$:/language/ThemeTweaks/Metrics/FontSize": {
"title": "$:/language/ThemeTweaks/Metrics/FontSize",
"text": "Font size"
},
"$:/language/ThemeTweaks/Metrics/LineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/LineHeight",
"text": "Line height"
},
"$:/language/ThemeTweaks/Metrics/BodyFontSize": {
"title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
"text": "Font size for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
"text": "Line height for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
"text": "Story left position"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
"text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryTop": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop",
"text": "Story top position"
},
"$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
"text": "how far the top margin of the story river<br>is from the top of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryRight": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight",
"text": "Story right"
},
"$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
"text": "how far the left margin of the sidebar <br>is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
"text": "Story width"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
"text": "the overall width of the story river"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
"text": "Tiddler width"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
"text": "within the story river"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
"text": "Sidebar breakpoint"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
"text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
"text": "Sidebar width"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
"text": "the width of the sidebar in fluid-fixed layout"
},
"$:/language/TiddlerInfo/Advanced/Caption": {
"title": "$:/language/TiddlerInfo/Advanced/Caption",
"text": "Advanced"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
"text": "none"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
"text": "Plugin Details"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
"text": "This plugin contains the following shadow tiddlers:"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
"text": "Shadow Status"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
"text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
"text": "It is overridden by an ordinary tiddler"
},
"$:/language/TiddlerInfo/Fields/Caption": {
"title": "$:/language/TiddlerInfo/Fields/Caption",
"text": "Fields"
},
"$:/language/TiddlerInfo/List/Caption": {
"title": "$:/language/TiddlerInfo/List/Caption",
"text": "List"
},
"$:/language/TiddlerInfo/List/Empty": {
"title": "$:/language/TiddlerInfo/List/Empty",
"text": "This tiddler does not have a list"
},
"$:/language/TiddlerInfo/Listed/Caption": {
"title": "$:/language/TiddlerInfo/Listed/Caption",
"text": "Listed"
},
"$:/language/TiddlerInfo/Listed/Empty": {
"title": "$:/language/TiddlerInfo/Listed/Empty",
"text": "This tiddler is not listed by any others"
},
"$:/language/TiddlerInfo/References/Caption": {
"title": "$:/language/TiddlerInfo/References/Caption",
"text": "References"
},
"$:/language/TiddlerInfo/References/Empty": {
"title": "$:/language/TiddlerInfo/References/Empty",
"text": "No tiddlers link to this one"
},
"$:/language/TiddlerInfo/Tagging/Caption": {
"title": "$:/language/TiddlerInfo/Tagging/Caption",
"text": "Tagging"
},
"$:/language/TiddlerInfo/Tagging/Empty": {
"title": "$:/language/TiddlerInfo/Tagging/Empty",
"text": "No tiddlers are tagged with this one"
},
"$:/language/TiddlerInfo/Tools/Caption": {
"title": "$:/language/TiddlerInfo/Tools/Caption",
"text": "Tools"
},
"$:/language/Docs/Types/application/javascript": {
"title": "$:/language/Docs/Types/application/javascript",
"description": "JavaScript code",
"name": "application/javascript",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/json": {
"title": "$:/language/Docs/Types/application/json",
"description": "JSON data",
"name": "application/json",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/x-tiddler-dictionary": {
"title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
"description": "Data dictionary",
"name": "application/x-tiddler-dictionary",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/image/gif": {
"title": "$:/language/Docs/Types/image/gif",
"description": "GIF image",
"name": "image/gif",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/jpeg": {
"title": "$:/language/Docs/Types/image/jpeg",
"description": "JPEG image",
"name": "image/jpeg",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/png": {
"title": "$:/language/Docs/Types/image/png",
"description": "PNG image",
"name": "image/png",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/svg+xml": {
"title": "$:/language/Docs/Types/image/svg+xml",
"description": "Structured Vector Graphics image",
"name": "image/svg+xml",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/x-icon": {
"title": "$:/language/Docs/Types/image/x-icon",
"description": "ICO format icon file",
"name": "image/x-icon",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/text/css": {
"title": "$:/language/Docs/Types/text/css",
"description": "Static stylesheet",
"name": "text/css",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/text/html": {
"title": "$:/language/Docs/Types/text/html",
"description": "HTML markup",
"name": "text/html",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/plain": {
"title": "$:/language/Docs/Types/text/plain",
"description": "Plain text",
"name": "text/plain",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/vnd.tiddlywiki": {
"title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
"description": "TiddlyWiki 5",
"name": "text/vnd.tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/x-tiddlywiki": {
"title": "$:/language/Docs/Types/text/x-tiddlywiki",
"description": "TiddlyWiki Classic",
"name": "text/x-tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/languages/en-GB/icon": {
"title": "$:/languages/en-GB/icon",
"type": "image/svg+xml",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
},
"$:/languages/en-GB": {
"title": "$:/languages/en-GB",
"name": "en-GB",
"description": "English (British)",
"author": "JeremyRuston",
"core-version": ">=5.0.0\"",
"text": "Stub pseudo-plugin for the default language"
},
"$:/core/modules/commander.js": {
"title": "$:/core/modules/commander.js",
"text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/commands/build.js": {
"title": "$:/core/modules/commands/build.js",
"text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/clearpassword.js": {
"title": "$:/core/modules/commands/clearpassword.js",
"text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/editions.js": {
"title": "$:/core/modules/commands/editions.js",
"text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\" \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/fetch.js": {
"title": "$:/core/modules/commands/fetch.js",
"text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tswitch(this.params[0]) {\n\t\tcase \"raw-file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turl: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"raw-files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = $tw.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback,redirectCount) {\n\tif(redirectCount > 10) {\n\t\treturn callback(\"Error too many redirects retrieving \" + url);\n\t}\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t \tdata = [];\n\t self.commander.write(\"Reading \" + url + \": \");\n\t response.on(\"data\",function(chunk) {\n\t data.push(chunk);\n\t self.commander.write(\".\");\n\t });\n\t response.on(\"end\",function() {\n\t self.commander.write(\"\\n\");\n\t if(response.statusCode === 200) {\n\t\t self.processBody(Buffer.concat(data),type,options,url);\n\t\t callback(null);\n\t } else {\n\t \tif(response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) {\n\t \t\treturn self.fetchFile(response.headers.location,options,callback,redirectCount + 1);\n\t \t} else {\n\t\t \treturn callback(\"Error \" + response.statusCode + \" retrieving \" + url)\t \t\t\n\t \t}\n\t }\n\t \t});\n\t \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options,url) {\n\tvar self = this;\n\t// Collect the tiddlers in a wiki\n\tvar incomingWiki = new $tw.Wiki();\n\tif(options.raw) {\n\t\tvar typeInfo = type ? $tw.config.contentTypeInfo[type] : null,\n\t\t\tencoding = typeInfo ? typeInfo.encoding : \"utf8\";\n\t\tincomingWiki.addTiddler(new $tw.Tiddler({\n\t\t\ttitle: url,\n\t\t\ttype: type,\n\t\t\ttext: body.toString(encoding)\n\t\t}));\n\t} else {\n\t\t// Deserialise the file to extract the tiddlers\n\t\tvar tiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body.toString(\"utf8\"),{});\n\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t});\n\t}\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter || \"[all[tiddlers]]\");\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/help.js": {
"title": "$:/core/modules/commands/help.js",
"text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/import.js": {
"title": "$:/core/modules/commands/import.js",
"text": "/*\\\ntitle: $:/core/modules/commands/import.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 2) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar filename = self.params[0],\n\t\tdeserializer = self.params[1],\n\t\ttitle = self.params[2] || filename,\n\t\tencoding = self.params[3] || \"utf8\",\n\t\ttext = fs.readFileSync(filename,encoding),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(null,text,{title: title},{deserializer: deserializer});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t});\n\tthis.commander.log(tiddlers.length + \" tiddler(s) imported\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/init.js": {
"title": "$:/core/modules/commands/init.js",
"text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/load.js": {
"title": "$:/core/modules/commands/load.js",
"text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file or directory\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar tiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count) {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/makelibrary.js": {
"title": "$:/core/modules/commands/makelibrary.js",
"text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = fs.readdirSync(folder);\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = fs.readdirSync(folder);\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.pluginsPath));\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.themesPath));\n\tcollectPlugins(path.resolve($tw.boot.corePath,$tw.config.languagesPath));\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers},null,$tw.config.preferences.jsonSpaces)\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/output.js": {
"title": "$:/core/modules/commands/output.js",
"text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/password.js": {
"title": "$:/core/modules/commands/password.js",
"text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/render.js": {
"title": "$:/core/modules/commands/render.js",
"text": "/*\\\ntitle: $:/core/modules/commands/render.js\ntype: application/javascript\nmodule-type: command\n\nRender individual tiddlers and save the results to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"render\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing tiddler filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]addsuffix[.html]]\",\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tvarName = this.params[4],\n\t\tvarValue = this.params[5],\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template || title),\n\t\t\tvariables = {currentTiddler: title};\n\t\tif(varName) {\n\t\t\tvariables[varName] = varValue || \"\";\n\t\t}\n\t\tvar widgetNode = wiki.makeWidget(parser,{variables: variables}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Rendering \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddler.js": {
"title": "$:/core/modules/commands/rendertiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddlers.js": {
"title": "$:/core/modules/commands/rendertiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/save.js": {
"title": "$:/core/modules/commands/save.js",
"text": "/*\\\ntitle: $:/core/modules/commands/save.js\ntype: application/javascript\nmodule-type: command\n\nSaves individual tiddlers in their raw text or binary format to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"save\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]]\",\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Saving \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savelibrarytiddlers.js": {
"title": "$:/core/modules/commands/savelibrarytiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler,null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{text: undefined, readme: readmeContent, icon: iconContent}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddler.js": {
"title": "$:/core/modules/commands/savetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddlers.js": {
"title": "$:/core/modules/commands/savetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/server.js": {
"title": "$:/core/modules/commands/server.js",
"text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\thttp = require(\"http\");\n}\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\n/*\nA simple HTTP server with regexp-based routes\n*/\nfunction SimpleServer(options) {\n\tthis.routes = options.routes || [];\n\tthis.wiki = options.wiki;\n\tthis.variables = options.variables || {};\n}\n\nSimpleServer.prototype.set = function(obj) {\n\tvar self = this;\n\t$tw.utils.each(obj,function(value,name) {\n\t\tself.variables[name] = value;\n\t});\n};\n\nSimpleServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nSimpleServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nSimpleServer.prototype.findMatchingRoute = function(request,state) {\n\tvar pathprefix = this.get(\"pathprefix\") || \"\";\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(pathprefix) {\n\t\t\tif(pathname.substr(0,pathprefix.length) === pathprefix) {\n\t\t\t\tpathname = pathname.substr(pathprefix.length);\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nSimpleServer.prototype.checkCredentials = function(request,incomingUsername,incomingPassword) {\n\tvar header = request.headers.authorization || \"\",\n\t\ttoken = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tusername = parts[0],\n\t\tpassword = parts[1];\n\tif(incomingUsername === username && incomingPassword === password) {\n\t\treturn \"ALLOWED\";\n\t} else {\n\t\treturn \"DENIED\";\n\t}\n};\n\nSimpleServer.prototype.requestHandler = function(request,response) {\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = self.wiki;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Check for the username and password if we've got one\n\tvar username = self.get(\"username\"),\n\t\tpassword = self.get(\"password\");\n\tif(username && password) {\n\t\t// Check they match\n\t\tif(self.checkCredentials(request,username,password) !== \"ALLOWED\") {\n\t\t\tvar servername = state.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\";\n\t\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + servername + '\"'\n\t\t\t});\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Set the encoding for the incoming request\n\t// TODO: Presumably this would need tweaking if we supported PUTting binary tiddlers\n\trequest.setEncoding(\"utf8\");\n\t// Dispatch the appropriate method\n\tswitch(request.method) {\n\t\tcase \"GET\": // Intentional fall-through\n\t\tcase \"DELETE\":\n\t\t\troute.handler(request,response,state);\n\t\t\tbreak;\n\t\tcase \"PUT\":\n\t\t\tvar data = \"\";\n\t\t\trequest.on(\"data\",function(chunk) {\n\t\t\t\tdata += chunk.toString();\n\t\t\t});\n\t\t\trequest.on(\"end\",function() {\n\t\t\t\tstate.data = data;\n\t\t\t\troute.handler(request,response,state);\n\t\t\t});\n\t\t\tbreak;\n\t}\n};\n\t\nSimpleServer.prototype.listen = function(port,host) {\n\treturn http.createServer(this.requestHandler.bind(this)).listen(port,host);\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n\t// Set up server\n\tthis.server = new SimpleServer({\n\t\twiki: this.commander.wiki\n\t});\n\t// Add route handlers\n\tthis.server.addRoute({\n\t\tmethod: \"PUT\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]),\n\t\t\t\tfields = JSON.parse(state.data);\n\t\t\t// Pull up any subfields in the `fields` object\n\t\t\tif(fields.fields) {\n\t\t\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\t\t\tfields[name] = field;\n\t\t\t\t});\n\t\t\t\tdelete fields.fields;\n\t\t\t}\n\t\t\t// Remove any revision field\n\t\t\tif(fields.revision) {\n\t\t\t\tdelete fields.revision;\n\t\t\t}\n\t\t\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\t\t\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\t\t\tresponse.writeHead(204, \"OK\",{\n\t\t\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\t\t\"Content-Type\": \"text/plain\"\n\t\t\t});\n\t\t\tresponse.end();\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"DELETE\",\n\t\tpath: /^\\/bags\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]);\n\t\t\tstate.wiki.deleteTiddler(title);\n\t\t\tresponse.writeHead(204, \"OK\", {\n\t\t\t\t\"Content-Type\": \"text/plain\"\n\t\t\t});\n\t\t\tresponse.end();\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": state.server.get(\"serveType\")});\n\t\t\tvar text = state.wiki.renderTiddler(state.server.get(\"renderType\"),state.server.get(\"rootTiddler\"));\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/status$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\tvar text = JSON.stringify({\n\t\t\t\tusername: state.server.get(\"username\"),\n\t\t\t\tspace: {\n\t\t\t\t\trecipe: \"default\"\n\t\t\t\t},\n\t\t\t\ttiddlywiki_version: $tw.version\n\t\t\t});\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/favicon.ico$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\t\t\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\t\t\tresponse.end(buffer,\"base64\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers.json$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\tvar tiddlers = [];\n\t\t\tstate.wiki.forEachTiddler({sortField: \"title\"},function(title,tiddler) {\n\t\t\t\tvar tiddlerFields = {};\n\t\t\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\t\t\tif(name !== \"text\") {\n\t\t\t\t\t\ttiddlerFields[name] = tiddler.getFieldString(name);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\ttiddlers.push(tiddlerFields);\n\t\t\t});\n\t\t\tvar text = JSON.stringify(tiddlers);\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]),\n\t\t\t\ttiddler = state.wiki.getTiddler(title),\n\t\t\t\ttiddlerFields = {},\n\t\t\t\tknownFields = [\n\t\t\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t\t\t];\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\t\t\ttiddlerFields[name] = value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t\t\t} else {\n\t\t\t\tresponse.writeHead(404);\n\t\t\t\tresponse.end();\n\t\t\t}\n\t\t}\n\t});\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\tvar port = this.params[0] || \"8080\",\n\t\trootTiddler = this.params[1] || \"$:/core/save/all\",\n\t\trenderType = this.params[2] || \"text/plain\",\n\t\tserveType = this.params[3] || \"text/html\",\n\t\tusername = this.params[4],\n\t\tpassword = this.params[5],\n\t\thost = this.params[6] || \"127.0.0.1\",\n\t\tpathprefix = this.params[7];\n\tif(parseInt(port,10).toString() !== port) {\n\t\tport = process.env[port] || 8080;\n\t}\n\tthis.server.set({\n\t\trootTiddler: rootTiddler,\n\t\trenderType: renderType,\n\t\tserveType: serveType,\n\t\tusername: username,\n\t\tpassword: password,\n\t\tpathprefix: pathprefix\n\t});\n\tvar nodeServer = this.server.listen(port,host);\n\t$tw.utils.log(\"Serving on \" + host + \":\" + port,\"brown/orange\");\n\t$tw.utils.log(\"(press ctrl-C to exit)\",\"red\");\n\t// Warn if required plugins are missing\n\tif(!$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\t$tw.hooks.invokeHook('th-server-command-post-start', this.server, nodeServer);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/setfield.js": {
"title": "$:/core/modules/commands/setfield.js",
"text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/unpackplugin.js": {
"title": "$:/core/modules/commands/unpackplugin.js",
"text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/verbose.js": {
"title": "$:/core/modules/commands/verbose.js",
"text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n \" + $tw.boot.logMessages.join(\"\\n \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/version.js": {
"title": "$:/core/modules/commands/version.js",
"text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/config.js": {
"title": "$:/core/modules/config.js",
"text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter: \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
"type": "application/javascript",
"module-type": "config"
},
"$:/core/modules/deserializers.js": {
"title": "$:/core/modules/deserializers.js",
"text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlerdeserializer"
},
"$:/core/modules/editor/engines/framed.js": {
"title": "$:/core/modules/editor/engines/framed.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/engines/simple.js": {
"title": "$:/core/modules/editor/engines/simple.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/factory.js": {
"title": "$:/core/modules/editor/factory.js",
"text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag);\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0) && (!this.document.isTiddlyWikiFakeDom);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\t\t\t\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/operations/bitmap/clear.js": {
"title": "$:/core/modules/editor/operations/bitmap/clear.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/resize.js": {
"title": "$:/core/modules/editor/operations/bitmap/resize.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/rotate-left.js": {
"title": "$:/core/modules/editor/operations/bitmap/rotate-left.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/rotate-left.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to rotate the image left by 90 degrees\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"rotate-left\"] = function(event) {\n\t// Rotate the canvas left by 90 degrees\n\tthis.rotateCanvasLeft();\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/text/excise.js": {
"title": "$:/core/modules/editor/operations/text/excise.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ? [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/make-link.js": {
"title": "$:/core/modules/editor/operations/text/make-link.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/prefix-lines.js": {
"title": "$:/core/modules/editor/operations/text/prefix-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,event.paramObject.count);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== event.paramObject.count) {\n\t\t\t// Apply the prefix\n\t\t\tline = prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-all.js": {
"title": "$:/core/modules/editor/operations/text/replace-all.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-selection.js": {
"title": "$:/core/modules/editor/operations/text/replace-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-lines.js": {
"title": "$:/core/modules/editor/operations/text/wrap-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-selection.js": {
"title": "$:/core/modules/editor/operations/text/wrap-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix unless they comprise the entire text\n\t\t\tif(operation.selStart > event.paramObject.prefix.length || (operation.selEnd + event.paramObject.suffix.length) < operation.text.length ) {\n\t\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\t\toperation.replacement = \"\";\n\t\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t\t}\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/filters/addprefix.js": {
"title": "$:/core/modules/filters/addprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/addsuffix.js": {
"title": "$:/core/modules/filters/addsuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/after.js": {
"title": "$:/core/modules/filters/after.js",
"text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/all/current.js": {
"title": "$:/core/modules/filters/all/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/missing.js": {
"title": "$:/core/modules/filters/all/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/orphans.js": {
"title": "$:/core/modules/filters/all/orphans.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/shadows.js": {
"title": "$:/core/modules/filters/all/shadows.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tags.js": {
"title": "$:/core/modules/filters/all/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tiddlers.js": {
"title": "$:/core/modules/filters/all/tiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all.js": {
"title": "$:/core/modules/filters/all.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/backlinks.js": {
"title": "$:/core/modules/filters/backlinks.js",
"text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/before.js": {
"title": "$:/core/modules/filters/before.js",
"text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/commands.js": {
"title": "$:/core/modules/filters/commands.js",
"text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/count.js": {
"title": "$:/core/modules/filters/count.js",
"text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/days.js": {
"title": "$:/core/modules/filters/days.js",
"text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/each.js": {
"title": "$:/core/modules/filters/each.js",
"text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\tvalue,values = {},\n\tfield = operator.operand || \"title\";\n\tif(operator.suffix === \"value\" && field === \"title\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(values,title)) {\n\t\t\t\tvalues[title] = true;\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else if(operator.suffix !== \"list-item\") {\n\t\tif(field === \"title\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !$tw.utils.hop(values,title)) {\n\t\t\t\t\tvalues[title] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvalue = tiddler.getFieldString(field);\n\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/eachday.js": {
"title": "$:/core/modules/filters/eachday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editiondescription.js": {
"title": "$:/core/modules/filters/editiondescription.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editions.js": {
"title": "$:/core/modules/filters/editions.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\tresults.push(name);\n\t\t});\n\t}\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/decodeuricomponent.js": {
"title": "$:/core/modules/filters/decodeuricomponent.js",
"text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(decodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(decodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title));\n\t});\n\treturn results;\n};\n\nexports.jsonstringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.jsonStringify(title));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/enlist.js": {
"title": "$:/core/modules/filters/enlist.js",
"text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar list = $tw.utils.parseStringArray(operator.operand);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/field.js": {
"title": "$:/core/modules/filters/field.js",
"text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/fields.js": {
"title": "$:/core/modules/filters/fields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/get.js": {
"title": "$:/core/modules/filters/get.js",
"text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getindex.js": {
"title": "$:/core/modules/filters/getindex.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/has.js": {
"title": "$:/core/modules/filters/has.js",
"text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === \"\")) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === \"\" || tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/haschanged.js": {
"title": "$:/core/modules/filters/haschanged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/indexes.js": {
"title": "$:/core/modules/filters/indexes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/insertbefore.js": {
"title": "$:/core/modules/filters/insertbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/is/current.js": {
"title": "$:/core/modules/filters/is/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/image.js": {
"title": "$:/core/modules/filters/is/image.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/missing.js": {
"title": "$:/core/modules/filters/is/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/orphan.js": {
"title": "$:/core/modules/filters/is/orphan.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/shadow.js": {
"title": "$:/core/modules/filters/is/shadow.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/system.js": {
"title": "$:/core/modules/filters/is/system.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tag.js": {
"title": "$:/core/modules/filters/is/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tiddler.js": {
"title": "$:/core/modules/filters/is/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is.js": {
"title": "$:/core/modules/filters/is.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/limit.js": {
"title": "$:/core/modules/filters/limit.js",
"text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/links.js": {
"title": "$:/core/modules/filters/links.js",
"text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/list.js": {
"title": "$:/core/modules/filters/list.js",
"text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listed.js": {
"title": "$:/core/modules/filters/listed.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listops.js": {
"title": "$:/core/modules/filters/listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/lookup.js": {
"title": "$:/core/modules/filters/lookup.js",
"text": "/*\\\ntitle: $:/core/modules/filters/lookup.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that looks up values via a title prefix\n\n[lookup:<field>[<prefix>]]\n\nPrepends the prefix to the selected items and returns the specified field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.lookup = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.getTiddlerText(operator.operand + title) || options.wiki.getTiddlerText(operator.operand + operator.suffix));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/minlength.js": {
"title": "$:/core/modules/filters/minlength.js",
"text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/modules.js": {
"title": "$:/core/modules/filters/modules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/moduletypes.js": {
"title": "$:/core/modules/filters/moduletypes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/next.js": {
"title": "$:/core/modules/filters/next.js",
"text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/plugintiddlers.js": {
"title": "$:/core/modules/filters/plugintiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/prefix.js": {
"title": "$:/core/modules/filters/prefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/previous.js": {
"title": "$:/core/modules/filters/previous.js",
"text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/regexp.js": {
"title": "$:/core/modules/filters/regexp.js",
"text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removeprefix.js": {
"title": "$:/core/modules/filters/removeprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removesuffix.js": {
"title": "$:/core/modules/filters/removesuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sameday.js": {
"title": "$:/core/modules/filters/sameday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/search.js": {
"title": "$:/core/modules/filters/search.js",
"text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffix) {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: operator.suffix\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/shadowsource.js": {
"title": "$:/core/modules/filters/shadowsource.js",
"text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sort.js": {
"title": "$:/core/modules/filters/sort.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortan = function(source, operator, options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results, operator.operand || \"title\", operator.prefix === \"!\",false,false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/splitbefore.js": {
"title": "$:/core/modules/filters/splitbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/storyviews.js": {
"title": "$:/core/modules/filters/storyviews.js",
"text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subtiddlerfields.js": {
"title": "$:/core/modules/filters/subtiddlerfields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subtiddlerfields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected subtiddlers of the plugin named in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subtiddlerfields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar subtiddler = options.wiki.getSubTiddler(operator.operand,title);\n\t\tif(subtiddler) {\n\t\t\tfor(var fieldName in subtiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/suffix.js": {
"title": "$:/core/modules/filters/suffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tag.js": {
"title": "$:/core/modules/filters/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [];\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tvar tiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tagging.js": {
"title": "$:/core/modules/filters/tagging.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tags.js": {
"title": "$:/core/modules/filters/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/title.js": {
"title": "$:/core/modules/filters/title.js",
"text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/untagged.js": {
"title": "$:/core/modules/filters/untagged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/wikiparserrules.js": {
"title": "$:/core/modules/filters/wikiparserrules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/x-listops.js": {
"title": "$:/core/modules/filters/x-listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n /*jslint node: true, browser: true */\n /*global $tw: false */\n \"use strict\";\n\n /*\n Fetch titles from the current list\n */\n var prepare_results = function (source) {\n var results = [];\n source(function (tiddler, title) {\n results.push(title);\n });\n return results;\n };\n\n /*\n Moves a number of items from the tail of the current list before the item named in the operand\n */\n exports.putbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list after the item named in the operand\n */\n exports.putafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Replaces the item named in the operand with a number of items from the tail of the current list\n */\n exports.replace = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -count) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list to the head of the list\n */\n exports.putfirst = function (source, operator) {\n var results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,1);\n return results.slice(-count).concat(results.slice(0, -count));\n };\n\n /*\n Moves a number of items from the head of the current list to the tail of the list\n */\n exports.putlast = function (source, operator) {\n var results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,1);\n return results.slice(count).concat(results.slice(0, count));\n };\n\n /*\n Moves the item named in the operand a number of places forward or backward in the list\n */\n exports.move = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1),\n marker = results.splice(index, 1),\n offset = (index + count) > 0 ? index + count : 0;\n return results.slice(0, offset).concat(marker).concat(results.slice(offset));\n };\n\n /*\n Returns the items from the current list that are after the item named in the operand\n */\n exports.allafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index === -1 || index > (results.length - 2)) ? [] :\n (operator.suffix) ? results.slice(index) :\n results.slice(index + 1);\n };\n\n /*\n Returns the items from the current list that are before the item named in the operand\n */\n exports.allbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index < 0) ? [] :\n (operator.suffix) ? results.slice(0, index + 1) :\n results.slice(0, index);\n };\n\n /*\n Appends the items listed in the operand array to the tail of the current list\n */\n exports.append = function (source, operator) {\n var append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || append.length;\n return (append.length === 0) ? results :\n (operator.prefix) ? results.concat(append.slice(-count)) :\n results.concat(append.slice(0, count));\n };\n\n /*\n Prepends the items listed in the operand array to the head of the current list\n */\n exports.prepend = function (source, operator) {\n var prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,prepend.length);\n return (prepend.length === 0) ? results :\n (operator.prefix) ? prepend.slice(-count).concat(results) :\n prepend.slice(0, count).concat(results);\n };\n\n /*\n Returns all items from the current list except the items listed in the operand array\n */\n exports.remove = function (source, operator) {\n var array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || array.length,\n p,\n len,\n index;\n len = array.length - 1;\n for (p = 0; p < count; ++p) {\n if (operator.prefix) {\n index = results.indexOf(array[len - p]);\n } else {\n index = results.indexOf(array[p]);\n }\n if (index !== -1) {\n results.splice(index, 1);\n }\n }\n return results;\n };\n\n /*\n Returns all items from the current list sorted in the order of the items in the operand array\n */\n exports.sortby = function (source, operator) {\n var results = prepare_results(source);\n if (!results || results.length < 2) {\n return results;\n }\n var lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n results.sort(function (a, b) {\n return lookup.indexOf(a) - lookup.indexOf(b);\n });\n return results;\n };\n\n /*\n Removes all duplicate items from the current list\n */\n exports.unique = function (source, operator) {\n var results = prepare_results(source);\n var set = results.reduce(function (a, b) {\n if (a.indexOf(b) < 0) {\n a.push(b);\n }\n return a;\n }, []);\n return set;\n };\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters.js": {
"title": "$:/core/modules/filters.js",
"text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\n\t\tp = nextBracketPos + 1;\n\t\tswitch (bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\toperator.indirect = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\toperator.variable = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n// DEPRECATION WARNING\nconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t}\n\t\tif(!operator.regexp) {\n\t\t\toperator.operand = filterString.substring(p,nextBracketPos);\n\t\t}\n\t\tp = nextBracketPos + 1;\n\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[3] || match[4] || match[5]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operand: match[3] || match[4] || match[5]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operand = operator.operand,\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\tif(operator.indirect) {\n\t\t\t\t\toperand = self.getTextReference(operator.operand,\"\",currTiddlerTitle);\n\t\t\t\t}\n\t\t\t\tif(operator.variable) {\n\t\t\t\t\toperand = widget.getVariable(operator.operand,{defaultValue: \"\"});\n\t\t\t\t}\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operand,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.removeArrayEntries(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\t\t\t\t\tsource = self.makeTiddlerIterator(results);\n\t\t\t\t\t\tresults.splice(0,results.length);\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter\",function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = [];\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results;\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/info/platform.js": {
"title": "$:/core/modules/info/platform.js",
"text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function() {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\tif($tw.browser) {\n\t\t// Document location\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t\t// Screen size\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/width\", text: window.screen.width.toString()});\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/height\", text: window.screen.height.toString()});\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "info"
},
"$:/core/modules/keyboard.js": {
"title": "$:/core/modules/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\tlookupName(\"shortcuts\");\n\t\t\t\tlookupName($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\");\n\t\t\t\tlookupName($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\t\t\t\tlookupName($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/language.js": {
"title": "$:/core/modules/language.js",
"text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/macros/changecount.js": {
"title": "$:/core/modules/macros/changecount.js",
"text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/contrastcolour.js": {
"title": "$:/core/modules/macros/contrastcolour.js",
"text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/csvtiddlers.js": {
"title": "$:/core/modules/macros/csvtiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/displayshortcuts.js": {
"title": "$:/core/modules/macros/displayshortcuts.js",
"text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/dumpvariables.js": {
"title": "$:/core/modules/macros/dumpvariables.js",
"text": "/*\\\ntitle: $:/core/modules/macros/dumpvariables.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to dump all active variable values\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"dumpvariables\";\n\nexports.params = [\n];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\tvar output = [\"|!Variable |!Value |\"],\n\t\tvariables = [], variable;\n\tfor(variable in this.variables) {\n\t\tvariables.push(variable);\n\t}\n\tvariables.sort();\n\tfor(var index=0; index<variables.length; index++) {\n\t\tvar variable = variables[index];\n\t\toutput.push(\"|\" + variable + \" |<input size=50 value=<<\" + variable + \">>/> |\")\n\t}\n\treturn output.join(\"\\n\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddler.js": {
"title": "$:/core/modules/macros/jsontiddler.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddlers.js": {
"title": "$:/core/modules/macros/jsontiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter) {\n\tvar tiddlers = this.wiki.filterTiddlers(filter),\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/makedatauri.js": {
"title": "$:/core/modules/macros/makedatauri.js",
"text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type) {\n\treturn $tw.utils.makeDataUri(text,type);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/now.js": {
"title": "$:/core/modules/macros/now.js",
"text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/qualify.js": {
"title": "$:/core/modules/macros/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/resolvepath.js": {
"title": "$:/core/modules/macros/resolvepath.js",
"text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/version.js": {
"title": "$:/core/modules/macros/version.js",
"text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/parsers/audioparser.js": {
"title": "$:/core/modules/parsers/audioparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/csvparser.js": {
"title": "$:/core/modules/parsers/csvparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/htmlparser.js": {
"title": "$:/core/modules/parsers/htmlparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/imageparser.js": {
"title": "$:/core/modules/parsers/imageparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t};\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/utils/parseutils.js": {
"title": "$:/core/modules/utils/parseutils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/parsers/pdfparser.js": {
"title": "$:/core/modules/parsers/pdfparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/textparser.js": {
"title": "$:/core/modules/parsers/textparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/videoparser.js": {
"title": "$:/core/modules/parsers/videoparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/dash.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"–\" : \"—\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/entity.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: ©\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/extlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: https://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/heading.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/html.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/html.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.slice(1).indexOf(\"$\") !== -1) {\n\t\treturn null;\n\t}\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/image.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/image.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[https://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [https://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [https://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|https://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/list.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/list.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"p\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[https://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|https://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/rules.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/syslink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/table.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/table.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/whitespace.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/whitespace.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/whitespace.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for whitespace specifications\n\n```\n\\whitespace trim\n\\whitespace notrim\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"whitespace\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\whitespace[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\t$tw.utils.each(tokens,function(token) {\n\t\tswitch(token) {\n\t\t\tcase \"trim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = true;\n\t\t\t\tbreak;\n\t\t\tcase \"notrim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = false;\n\t\t\t\tbreak;\n\t\t}\n\t});\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/wikiparser.js": {
"title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Flag for ignoring whitespace\n\tthis.configTrimWhiteSpace = false;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t// Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,nextMatch.matchIndex));\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,terminatorMatch.index));\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,inlineRuleMatch.matchIndex));\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nPush a text widget onto an array, respecting the configTrimWhiteSpace setting\n*/\nWikiParser.prototype.pushTextWidget = function(array,text) {\n\tif(this.configTrimWhiteSpace) {\n\t\ttext = $tw.utils.trim(text);\n\t}\n\tif(text) {\n\t\tarray.push({type: \"text\", text: text});\t\t\n\t}\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar keepFilter;\n\tif(type === \"only\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) !== -1;\n\t\t};\n\t} else if(type === \"except\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) === -1;\n\t\t};\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif(!keepFilter(ruleArray[t].rule.name)) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/pluginswitcher.js": {
"title": "$:/core/modules/pluginswitcher.js",
"text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/saver-handler.js": {
"title": "$:/core/modules/saver-handler.js",
"text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tthis.numChanges = 0;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\",\n\t\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\t}\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/savers/andtidwiki.js": {
"title": "$:/core/modules/savers/andtidwiki.js",
"text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t// Strip the file://\n\tif(pathname.indexOf(\"file://\") === 0) {\n\t\tpathname = pathname.substr(7);\n\t}\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Save the file\n\twindow.twi.saveFile(pathname,text);\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/beaker.js": {
"title": "$:/core/modules/savers/beaker.js",
"text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\nCompatible with beaker >= V0.7.2\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar dat = new DatArchive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.DatArchive && location.protocol===\"dat:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/download.js": {
"title": "$:/core/modules/savers/download.js",
"text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\t// We decode the pathname because document.location is URL encoded by the browser\n\t\t\tfilename = decodeURIComponent(document.location.pathname.substr(p+1));\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/fsosaver.js": {
"title": "$:/core/modules/savers/fsosaver.js",
"text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/manualdownload.js": {
"title": "$:/core/modules/savers/manualdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/msdownload.js": {
"title": "$:/core/modules/savers/msdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/put.js": {
"title": "$:/core/modules/savers/put.js",
"text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRetrieve ETag if available\n*/\nvar RetrieveETag = function(self) {\n\tvar headers = { \"Accept\": \"*/*;charset=UTF-8\" };\n\t$tw.utils.httpRequest({\n\t\turl: self.uri(),\n\t\ttype: \"HEAD\",\n\t\theaders: headers,\n\t\tcallback: function(err, data, xhr) {\n\t\t\tif(err) return;\n\t\t\tvar etag = xhr.getResponseHeader(\"ETag\");\n\t\t\tif(!etag) return;\n\t\t\tself.etag = etag.replace(/^W\\//,\"\");\n\t\t}\n\t});\n};\n\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err, data, xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\tRetrieveETag(this);\n};\n\nPutSaver.prototype.uri = function() {\n\treturn document.location.toString().split(\"#\")[0];\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text, method, callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = { \"Content-Type\": \"text/html;charset=UTF-8\" };\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err, data, xhr) {\n\t\t\tif(err) {\n\t\t\t\t// response is textual: \"XMLHttpRequest error code: 412\"\n\t\t\t\tconst status = Number(err.substring(err.indexOf(':') + 2, err.length))\n\t\t\t\tif(status === 412) { // edit conflict\n\t\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\t\tcallback(message);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err); // fail\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tif (self.etag == null) {\n\t\t\t\t\tRetrieveETag(self);\n\t\t\t\t}\n\t\t\t\tcallback(null); // success\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyfox.js": {
"title": "$:/core/modules/savers/tiddlyfox.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyie.js": {
"title": "$:/core/modules/savers/tiddlyie.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/twedit.js": {
"title": "$:/core/modules/savers/twedit.js",
"text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/upload.js": {
"title": "$:/core/modules/savers/upload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/browser-messaging.js": {
"title": "$:/core/modules/browser-messaging.js",
"text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\tconsole.log(\"browser-messaging: \",document.location.toString())\n\t\tconsole.log(\"browser-messaging: Received message from\",event.origin);\n\t\tconsole.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/commands.js": {
"title": "$:/core/modules/startup/commands.js",
"text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/favicon.js": {
"title": "$:/core/modules/startup/favicon.js",
"text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",\"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text);\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/info.js": {
"title": "$:/core/modules/startup/info.js",
"text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Collect up the info tiddlers\n\tvar infoTiddlerFields = {};\n\t// Give each info module a chance to fill in as many info tiddlers as they want\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tvar tiddlerFieldsArray = moduleExports.getInfoTiddlerFields(infoTiddlerFields);\n\t\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\t\tif(fields) {\n\t\t\t\t\tinfoTiddlerFields[fields.title] = fields;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Bake the info tiddlers into a plugin\n\tvar fields = {\n\t\ttitle: \"$:/temp/info-plugin\",\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"info\",\n\t\ttext: JSON.stringify({tiddlers: infoTiddlerFields},null,$tw.config.preferences.jsonSpaces)\n\t};\n\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\t$tw.wiki.readPluginInfo();\n\t$tw.wiki.registerPluginTiddlers(\"info\");\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/load-modules.js": {
"title": "$:/core/modules/startup/load-modules.js",
"text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/password.js": {
"title": "$:/core/modules/startup/password.js",
"text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/render.js": {
"title": "$:/core/modules/startup/render.js",
"text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/PageTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar DRAFT_TIDDLER_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t})();\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only drafts have changed\n\t\tvar onlyDraftsHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !tiddler.hasField(\"draft.of\")) {\n\t\t\t\tonlyDraftsHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyDraftsHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = DRAFT_TIDDLER_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/rootwidget.js": {
"title": "$:/core/modules/startup/rootwidget.js",
"text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the notification mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the copy-to-clipboard mechanism\n\t$tw.rootWidget.addEventListener(\"tm-copy-to-clipboard\",function(event) {\n\t\t$tw.utils.copyToClipboard(event.param);\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tif(document[fullscreen._fullscreenElement]) {\n\t\t\t\tdocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tdocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup.js": {
"title": "$:/core/modules/startup.js",
"text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.appVersion);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-US\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\t$tw.rootWidget = new widget.widget({\n\t\ttype: \"widget\",\n\t\tchildren: []\n\t},{\n\t\twiki: $tw.wiki,\n\t\tdocument: $tw.browser ? document : $tw.fakeDocument\n\t});\n\t// Execute any startup actions\n\tvar executeStartupTiddlers = function(tag) {\n\t\t$tw.utils.each($tw.wiki.filterTiddlers(\"[all[shadows+tiddlers]tag[\" + tag + \"]!has[draft.of]]\"),function(title) {\n\t\t\t$tw.rootWidget.invokeActionString($tw.wiki.getTiddlerText(title),$tw.rootWidget);\n\t\t});\n\t};\n\texecuteStartupTiddlers(\"$:/tags/StartupAction\");\n\tif($tw.browser) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Browser\");\t\t\n\t}\n\tif($tw.node) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Node\");\t\t\n\t}\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t} \n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({wiki: $tw.wiki, dirtyTracking: !$tw.syncadaptor});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/story.js": {
"title": "$:/core/modules/startup/story.js",
"text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers();\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\t\t\t\t\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: \"permalink\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: \"permaview\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle\n\t\t\t});\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// If a target tiddler was specified add it to the history stack\n\tif(target && target !== \"\") {\n\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t}\n\t\t$tw.wiki.addToHistory(target);\n\t} else if(storyList.length > 0) {\n\t\t$tw.wiki.addToHistory(storyList[0]);\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\tif(options.updateAddressBar !== \"no\") {\n\t\t// Get the story and the history stack\n\t\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\t\ttargetTiddler = \"\";\n\t\tif(options.targetTiddler) {\n\t\t\ttargetTiddler = options.targetTiddler;\n\t\t} else {\n\t\t\t// The target tiddler is the one at the top of the stack\n\t\t\tif(historyList.length > 0) {\n\t\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t\t}\n\t\t\t// Blank the target tiddler if it isn't present in the story\n\t\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\t\ttargetTiddler = \"\";\n\t\t\t}\n\t\t}\n\t\t// Assemble the location hash\n\t\tif(options.updateAddressBar === \"permalink\") {\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t} else {\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t}\n\t\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\t\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\t\tif(options.updateHistory === \"yes\") {\n\t\t\t\t// Assign the location hash so that history is updated\n\t\t\t\twindow.location.hash = $tw.locationHash;\n\t\t\t} else {\n\t\t\t\t// We use replace so that browser history isn't affected\n\t\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t\t}\n\t\t}\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/windows.js": {
"title": "$:/core/modules/startup/windows.js",
"text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\nvar windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\twindows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = title;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each(windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/story.js": {
"title": "$:/core/modules/story.js",
"text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/storyviews/classic.js": {
"title": "$:/core/modules/storyviews/classic.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Get the current height of the tiddler\n\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Get the current height of the tiddler\n\tvar currWidth = targetElement.offsetWidth,\n\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Remove the dom nodes of the widget at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"translateX(0px)\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/pop.js": {
"title": "$:/core/modules/storyviews/pop.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/zoomin.js": {
"title": "$:/core/modules/storyviews/zoomin.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx = zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty = zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/syncer.js": {
"title": "$:/core/modules/syncer.js",
"text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store. If a syncadaptor is used then individual tiddlers are synchronised through it. If there is no syncadaptor then the entire wiki is saved via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.disableUI = !!options.disableUI;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || this.throttleInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || this.pollTimerInterval;\n\tthis.logging = \"logging\" in options ? options.logging : true;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"),{\n\t\t\tcolour: \"cyan\",\n\t\t\tenable: this.logging\n\t\t});\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\t// Tasks are {type: \"load\"/\"save\"/\"delete\", title:, queueTime:, lastModificationTime:}\n\tthis.taskQueue = {}; // Hashmap of tasks yet to be performed\n\tthis.taskInProgress = {}; // Hash of tasks in progress\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.syncToServer(changes);\n\t});\n\t// Browser event handlers\n\tif($tw.browser && !this.disableUI) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function() {\n\t\t\tself.handleLoginEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tif(!this.disableUI) {\n\t\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\t\tself.handleLazyLoadEvent(title);\n\t\t});\t\t\n\t}\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.filterFn.call(this.wiki);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: tiddler.fields.revision,\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title),\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t});\n};\n\n/*\nCreate an tiddlerInfo structure if it doesn't already exist\n*/\nSyncer.prototype.createTiddlerInfo = function(title) {\n\tif(!$tw.utils.hop(this.tiddlerInfo,title)) {\n\t\tthis.tiddlerInfo[title] = {\n\t\t\trevision: null,\n\t\t\tadaptorInfo: {},\n\t\t\tchangeCount: -1,\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t}\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\treturn (this.numTasksInQueue() > 0) || (this.numTasksInProgress() > 0);\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser && !this.disableUI) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields,hasBeenLazyLoaded) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(this.wiki.getTiddler(tiddlerFields.title),tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: tiddlerFields.revision,\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title),\n\t\thasBeenLazyLoaded: hasBeenLazyLoaded !== undefined ? hasBeenLazyLoaded : true\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Set the various status tiddlers\n\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\tif(isLoggedIn) {\n\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tif(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tvar self = this;\n\t\tif(this.pollTimerId) {\n\t\t\tclearTimeout(this.pollTimerId);\n\t\t\tthis.pollTimerId = null;\n\t\t}\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\t// Trigger the next sync\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert($tw.language.getString(\"Error/RetrievingSkinny\") + \":\",err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null;\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Do a full load if we've already got a fat version of the tiddler\n\t\t\t\t\tif(tiddler && tiddler.fields.text !== undefined) {\n\t\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\t\tself.enqueueSyncTask({\n\t\t\t\t\t\t\ttype: \"load\",\n\t\t\t\t\t\t\ttitle: tiddlerFields.title\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Load the skinny version of the tiddler\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields,false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nSynchronise a set of changes to the server\n*/\nSyncer.prototype.syncToServer = function(changes) {\n\tvar self = this,\n\t\tnow = Date.now(),\n\t\tfilteredChanges = this.filterFn.call(this.wiki,function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t$tw.utils.each(changes,function(change,title,object) {\n\t\t// Process the change if it is a deletion of a tiddler we're already syncing, or is on the filtered change list\n\t\tif((change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) || filteredChanges.indexOf(title) !== -1) {\n\t\t\t// Queue a task to sync this tiddler\n\t\t\tself.enqueueSyncTask({\n\t\t\t\ttype: change.deleted ? \"delete\" : \"save\",\n\t\t\t\ttitle: title\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Don't lazy load the same tiddler twice\n\tvar info = this.tiddlerInfo[title];\n\tif(!info || !info.hasBeenLazyLoaded) {\n\t\t// Don't lazy load if the tiddler isn't included in the sync filter\n\t\tif(this.filterFn.call(this.wiki).indexOf(title) !== -1) {\n\t\t\tthis.createTiddlerInfo(title);\n\t\t\tthis.tiddlerInfo[title].hasBeenLazyLoaded = true;\n\t\t\t// Queue up a sync task to load this tiddler\n\t\t\tthis.enqueueSyncTask({\n\t\t\t\ttype: \"load\",\n\t\t\t\ttitle: title\n\t\t\t});\n\t\t}\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!isLoggedIn) {\n\t\t\t$tw.passwordPrompt.createPrompt({\n\t\t\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\t\t\tcallback: function(data) {\n\t\t\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\t\t\tself.syncFromServer();\n\t\t\t\t\t});\n\t\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(null,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nQueue up a sync task. If there is already a pending task for the tiddler, just update the last modification time\n*/\nSyncer.prototype.enqueueSyncTask = function(task) {\n\tvar self = this,\n\t\tnow = Date.now();\n\t// Set the timestamps on this task\n\ttask.queueTime = now;\n\ttask.lastModificationTime = now;\n\t// Fill in some tiddlerInfo if the tiddler is one we haven't seen before\n\tthis.createTiddlerInfo(task.title);\n\t// Bail if this is a save and the tiddler is already at the changeCount that the server has\n\tif(task.type === \"save\" && this.wiki.getChangeCount(task.title) <= this.tiddlerInfo[task.title].changeCount) {\n\t\treturn;\n\t}\n\t// Check if this tiddler is already in the queue\n\tif($tw.utils.hop(this.taskQueue,task.title)) {\n\t\t// this.logger.log(\"Re-queueing up sync task with type:\",task.type,\"title:\",task.title);\n\t\tvar existingTask = this.taskQueue[task.title];\n\t\t// If so, just update the last modification time\n\t\texistingTask.lastModificationTime = task.lastModificationTime;\n\t\t// If the new task is a save then we upgrade the existing task to a save. Thus a pending load is turned into a save if the tiddler changes locally in the meantime. But a pending save is not modified to become a load\n\t\tif(task.type === \"save\" || task.type === \"delete\") {\n\t\t\texistingTask.type = task.type;\n\t\t}\n\t} else {\n\t\t// this.logger.log(\"Queuing up sync task with type:\",task.type,\"title:\",task.title);\n\t\t// If it is not in the queue, insert it\n\t\tthis.taskQueue[task.title] = task;\n\t\tthis.updateDirtyStatus();\n\t}\n\t// Process the queue\n\t$tw.utils.nextTick(function() {self.processTaskQueue.call(self);});\n};\n\n/*\nReturn the number of tasks in progress\n*/\nSyncer.prototype.numTasksInProgress = function() {\n\treturn $tw.utils.count(this.taskInProgress);\n};\n\n/*\nReturn the number of tasks in the queue\n*/\nSyncer.prototype.numTasksInQueue = function() {\n\treturn $tw.utils.count(this.taskQueue);\n};\n\n/*\nTrigger a timeout if one isn't already outstanding\n*/\nSyncer.prototype.triggerTimeout = function() {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},self.taskTimerInterval);\n\t}\n};\n\n/*\nProcess the task queue, performing the next task if appropriate\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress() === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(task) {\n\t\t\t// Remove the task from the queue and add it to the in progress list\n\t\t\tdelete this.taskQueue[task.title];\n\t\t\tthis.taskInProgress[task.title] = task;\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// Dispatch the task\n\t\t\tthis.dispatchTask(task,function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\tself.logger.alert(\"Sync error while processing '\" + task.title + \"':\\n\" + err);\n\t\t\t\t}\n\t\t\t\t// Mark that this task is no longer in progress\n\t\t\t\tdelete self.taskInProgress[task.title];\n\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t// Process the next task\n\t\t\t\tself.processTaskQueue.call(self);\n\t\t\t});\n\t\t} else {\n\t\t\t// Make sure we've set a time if there wasn't a task to perform, but we've still got tasks in the queue\n\t\t\tif(this.numTasksInQueue() > 0) {\n\t\t\t\tthis.triggerTimeout();\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nChoose the next applicable task\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar self = this,\n\t\tcandidateTask = null,\n\t\tnow = Date.now();\n\t// Select the best candidate task\n\t$tw.utils.each(this.taskQueue,function(task,title) {\n\t\t// Exclude the task if there's one of the same name in progress\n\t\tif($tw.utils.hop(self.taskInProgress,title)) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is a save and the tiddler has been modified recently, but not hit the fallback time\n\t\tif(task.type === \"save\" && (now - task.lastModificationTime) < self.throttleInterval &&\n\t\t\t(now - task.queueTime) < self.fallbackInterval) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is newer than the current best candidate\n\t\tif(candidateTask && candidateTask.queueTime < task.queueTime) {\n\t\t\treturn;\n\t\t}\n\t\t// Now this is our best candidate\n\t\tcandidateTask = task;\n\t});\n\treturn candidateTask;\n};\n\n/*\nDispatch a task and invoke the callback\n*/\nSyncer.prototype.dispatchTask = function(task,callback) {\n\tvar self = this;\n\tif(task.type === \"save\") {\n\t\tvar changeCount = this.wiki.getChangeCount(task.title),\n\t\t\ttiddler = this.wiki.getTiddler(task.title);\n\t\tthis.logger.log(\"Dispatching 'save' task:\",task.title);\n\t\tif(tiddler) {\n\t\t\tthis.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\t// Adjust the info stored about this tiddler\n\t\t\t\tself.tiddlerInfo[task.title] = {\n\t\t\t\t\tchangeCount: changeCount,\n\t\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\t\trevision: revision\n\t\t\t\t};\n\t\t\t\t// Invoke the callback\n\t\t\t\tcallback(null);\n\t\t\t},{\n\t\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t\t});\n\t\t} else {\n\t\t\tthis.logger.log(\" Not Dispatching 'save' task:\",task.title,\"tiddler does not exist\");\n\t\t\treturn callback(null);\n\t\t}\n\t} else if(task.type === \"load\") {\n\t\t// Load the tiddler\n\t\tthis.logger.log(\"Dispatching 'load' task:\",task.title);\n\t\tthis.syncadaptor.loadTiddler(task.title,function(err,tiddlerFields) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Store the tiddler\n\t\t\tif(tiddlerFields) {\n\t\t\t\tself.storeTiddler(tiddlerFields,true);\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else if(task.type === \"delete\") {\n\t\t// Delete the tiddler\n\t\tthis.logger.log(\"Dispatching 'delete' task:\",task.title);\n\t\tthis.syncadaptor.deleteTiddler(task.title,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tdelete self.tiddlerInfo[task.title];\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t},{\n\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t});\n\t}\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/tiddler.js": {
"title": "$:/core/modules/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = [];\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields.push(field + \": \" + this.getFieldString(field));\n\t\t\t}\n\t\t}\n\t}\n\treturn fields.join(\"\\n\");\n};\n\n/*\nCompare two tiddlers for equality\ntiddler: the tiddler to compare\nexcludeFields: array of field names to exclude from the comparison\n*/\nexports.isEqual = function(tiddler,excludeFields) {\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\treturn false;\n\t}\n\texcludeFields = excludeFields || [];\n\tvar self = this,\n\t\tdifferences = []; // Fields that have differences\n\t// Add to the differences array\n\tfunction addDifference(fieldName) {\n\t\t// Check for this field being excluded\n\t\tif(excludeFields.indexOf(fieldName) === -1) {\n\t\t\t// Save the field as a difference\n\t\t\t$tw.utils.pushTop(differences,fieldName);\n\t\t}\n\t}\n\t// Returns true if the two values of this field are equal\n\tfunction isFieldValueEqual(fieldName) {\n\t\tvar valueA = self.fields[fieldName],\n\t\t\tvalueB = tiddler.fields[fieldName];\n\t\t// Check for identical string values\n\t\tif(typeof(valueA) === \"string\" && typeof(valueB) === \"string\" && valueA === valueB) {\n\t\t\treturn true;\n\t\t}\n\t\t// Check for identical array values\n\t\tif($tw.utils.isArray(valueA) && $tw.utils.isArray(valueB) && $tw.utils.isArrayEqual(valueA,valueB)) {\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise the fields must be different\n\t\treturn false;\n\t}\n\t// Compare our fields\n\tfor(var fieldName in this.fields) {\n\t\tif(!isFieldValueEqual(fieldName)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// There's a difference for every field in the other tiddler that we don't have\n\tfor(fieldName in tiddler.fields) {\n\t\tif(!(fieldName in this.fields)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// Return whether there were any differences\n\treturn differences.length === 0;\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlermethod"
},
"$:/core/modules/upgraders/plugins.js": {
"title": "$:/core/modules/upgraders/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"] && incomingTiddler.version) {\n\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/system.js": {
"title": "$:/core/modules/upgraders/system.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/themetweaks.js": {
"title": "$:/core/modules/upgraders/themetweaks.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/utils/crypto.js": {
"title": "$:/core/modules/utils/crypto.js",
"text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/diff-match-patch/diff_match_patch.js": {
"text": "(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=.5;this.Patch_Margin=4;this.Match_MaxBits=32}var DIFF_DELETE=-1,DIFF_INSERT=1,DIFF_EQUAL=0;\ndiff_match_patch.prototype.diff_main=function(a,b,c,d){\"undefined\"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error(\"Null input. (diff_main)\");if(a==b)return a?[[DIFF_EQUAL,a]]:[];\"undefined\"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);f=this.diff_commonSuffix(a,b);var g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,\nb,e,d);c&&a.unshift([DIFF_EQUAL,c]);g&&a.push([DIFF_EQUAL,g]);this.diff_cleanupMerge(a);return a};\ndiff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[DIFF_INSERT,b]];if(!b)return[[DIFF_DELETE,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[DIFF_INSERT,e.substring(0,g)],[DIFF_EQUAL,f],[DIFF_INSERT,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=DIFF_DELETE),c):1==f.length?[[DIFF_DELETE,a],[DIFF_INSERT,b]]:(e=this.diff_halfMatch_(a,b))?(b=e[1],f=e[3],a=e[4],e=this.diff_main(e[0],e[2],c,d),c=this.diff_main(b,f,c,d),e.concat([[DIFF_EQUAL,\na]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,d):this.diff_bisect_(a,b,d)};\ndiff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([DIFF_EQUAL,\"\"]);for(var e=d=b=0,f=\"\",g=\"\";b<a.length;){switch(a[b][0]){case DIFF_INSERT:e++;g+=a[b][1];break;case DIFF_DELETE:d++;f+=a[b][1];break;case DIFF_EQUAL:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=\nd.length}d=e=0;g=f=\"\"}b++}a.pop();return a};\ndiff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=2*f,h=Array(g),l=Array(g),k=0;k<g;k++)h[k]=-1,l[k]=-1;h[f+1]=0;l[f+1]=0;k=d-e;for(var m=0!=k%2,p=0,x=0,w=0,q=0,t=0;t<f&&!((new Date).getTime()>c);t++){for(var v=-t+p;v<=t-x;v+=2){var n=f+v;var r=v==-t||v!=t&&h[n-1]<h[n+1]?h[n+1]:h[n-1]+1;for(var y=r-v;r<d&&y<e&&a.charAt(r)==b.charAt(y);)r++,y++;h[n]=r;if(r>d)x+=2;else if(y>e)p+=2;else if(m&&(n=f+k-v,0<=n&&n<g&&-1!=l[n])){var u=d-l[n];if(r>=\nu)return this.diff_bisectSplit_(a,b,r,y,c)}}for(v=-t+w;v<=t-q;v+=2){n=f+v;u=v==-t||v!=t&&l[n-1]<l[n+1]?l[n+1]:l[n-1]+1;for(r=u-v;u<d&&r<e&&a.charAt(d-u-1)==b.charAt(e-r-1);)u++,r++;l[n]=u;if(u>d)q+=2;else if(r>e)w+=2;else if(!m&&(n=f+k-v,0<=n&&n<g&&-1!=h[n]&&(r=h[n],y=f+r-n,u=d-u,r>=u)))return this.diff_bisectSplit_(a,b,r,y,c)}}return[[DIFF_DELETE,a],[DIFF_INSERT,b]]};\ndiff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};\ndiff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b=\"\",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf(\"\\n\",c);-1==f&&(f=a.length-1);var h=a.substring(c,f+1);c=f+1;(e.hasOwnProperty?e.hasOwnProperty(h):void 0!==e[h])?b+=String.fromCharCode(e[h]):(b+=String.fromCharCode(g),e[h]=g,d[g++]=h)}return b}var d=[],e={};d[0]=\"\";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};\ndiff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join(\"\")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;d=0;for(var e=1;;){var f=a.substring(c-e);f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};\ndiff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g=\"\",h,k,l,m;-1!=(e=b.indexOf(d,e+1));){var p=f.diff_commonPrefix(a.substring(c),b.substring(e)),u=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<u+p&&(g=b.substring(e-u,e)+b.substring(e,e+p),h=a.substring(0,c-u),k=a.substring(c+p),l=b.substring(0,e-u),m=b.substring(e+p))}return 2*g.length>=a.length?[h,k,l,m,g]:null}if(0>=this.Diff_Timeout)return null;\nvar d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4));d=c(d,e,Math.ceil(d.length/2));if(g||d)g=d?g?g[4].length>d[4].length?g:d:d:g;else return null;if(a.length>b.length){d=g[0];e=g[1];var h=g[2];var l=g[3]}else h=g[0],l=g[1],d=g[2],e=g[3];return[d,e,h,l,g[4]]};\ndiff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,l=0,k=0;f<a.length;)a[f][0]==DIFF_EQUAL?(c[d++]=f,g=l,h=k,k=l=0,e=a[f][1]):(a[f][0]==DIFF_INSERT?l+=a[f][1].length:k+=a[f][1].length,e&&e.length<=Math.max(g,h)&&e.length<=Math.max(l,k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,d--,f=0<d?c[d-1]:-1,k=l=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(a[f-1][0]==\nDIFF_DELETE&&a[f][0]==DIFF_INSERT){b=a[f-1][1];c=a[f][1];d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[DIFF_EQUAL,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[DIFF_EQUAL,b.substring(0,e)]),a[f-1][0]=DIFF_INSERT,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=DIFF_DELETE,a[f+1][1]=b.substring(e),f++;f++}f++}};\ndiff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_);c=g&&c.match(diff_match_patch.linebreakRegex_);d=h&&d.match(diff_match_patch.linebreakRegex_);var k=c&&a.match(diff_match_patch.blanklineEndRegex_),l=d&&b.match(diff_match_patch.blanklineStartRegex_);\nreturn k||l?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(a[c-1][0]==DIFF_EQUAL&&a[c+1][0]==DIFF_EQUAL){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g){var h=e.substring(e.length-g);d=d.substring(0,d.length-g);e=h+e.substring(0,e.length-g);f=h+f}g=d;h=e;for(var l=f,k=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){d+=e.charAt(0);e=e.substring(1)+f.charAt(0);f=f.substring(1);var m=b(d,e)+b(e,f);m>=k&&(k=m,g=d,h=e,l=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-\n1,1),c--),a[c][1]=h,l?a[c+1][1]=l:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\\s/;diff_match_patch.linebreakRegex_=/[\\r\\n]/;diff_match_patch.blanklineEndRegex_=/\\n\\r?\\n$/;diff_match_patch.blanklineStartRegex_=/^\\r?\\n\\r?\\n/;\ndiff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,l=!1,k=!1;f<a.length;)a[f][0]==DIFF_EQUAL?(a[f][1].length<this.Diff_EditCost&&(l||k)?(c[d++]=f,g=l,h=k,e=a[f][1]):(d=0,e=null),l=k=!1):(a[f][0]==DIFF_DELETE?k=!0:l=!0,e&&(g&&h&&l&&k||e.length<this.Diff_EditCost/2&&3==g+h+l+k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,e=null,g&&h?(l=k=!0,d=0):(d--,f=0<d?c[d-1]:-1,l=k=!1),b=!0)),f++;b&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([DIFF_EQUAL,\"\"]);for(var b=0,c=0,d=0,e=\"\",f=\"\",g;b<a.length;)switch(a[b][0]){case DIFF_INSERT:d++;f+=a[b][1];b++;break;case DIFF_DELETE:c++;e+=a[b][1];b++;break;case DIFF_EQUAL:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&a[b-c-d-1][0]==DIFF_EQUAL?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[DIFF_EQUAL,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-\ng)+a[b][1],f=f.substring(0,f.length-g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[DIFF_INSERT,f]):0===d?a.splice(b-c,c+d,[DIFF_DELETE,e]):a.splice(b-c-d,c+d,[DIFF_DELETE,e],[DIFF_INSERT,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&a[b-1][0]==DIFF_EQUAL?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=\"\"}\"\"===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)a[b-1][0]==DIFF_EQUAL&&a[b+1][0]==DIFF_EQUAL&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,\na[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){a[g][0]!==DIFF_INSERT&&(c+=a[g][1].length);a[g][0]!==DIFF_DELETE&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&a[g][0]===DIFF_DELETE?f:f+(b-e)};\ndiff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\\n/g,g=0;g<a.length;g++){var h=a[g][0],l=a[g][1].replace(c,\"&\").replace(d,\"<\").replace(e,\">\").replace(f,\"¶<br>\");switch(h){case DIFF_INSERT:b[g]='<ins style=\"background:#e6ffe6;\">'+l+\"</ins>\";break;case DIFF_DELETE:b[g]='<del style=\"background:#ffe6e6;\">'+l+\"</del>\";break;case DIFF_EQUAL:b[g]=\"<span>\"+l+\"</span>\"}}return b.join(\"\")};\ndiff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_INSERT&&(b[c]=a[c][1]);return b.join(\"\")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_DELETE&&(b[c]=a[c][1]);return b.join(\"\")};\ndiff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][1];switch(a[e][0]){case DIFF_INSERT:c+=f.length;break;case DIFF_DELETE:d+=f.length;break;case DIFF_EQUAL:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};\ndiff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case DIFF_INSERT:b[c]=\"+\"+encodeURI(a[c][1]);break;case DIFF_DELETE:b[c]=\"-\"+a[c][1].length;break;case DIFF_EQUAL:b[c]=\"=\"+a[c][1].length}return b.join(\"\\t\").replace(/%20/g,\" \")};\ndiff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case \"+\":try{c[d++]=[DIFF_INSERT,decodeURI(h)]}catch(k){throw Error(\"Illegal escape in diff_fromDelta: \"+h);}break;case \"-\":case \"=\":var l=parseInt(h,10);if(isNaN(l)||0>l)throw Error(\"Invalid number in diff_fromDelta: \"+h);h=a.substring(e,e+=l);\"=\"==f[g].charAt(0)?c[d++]=[DIFF_EQUAL,h]:c[d++]=[DIFF_DELETE,h];break;default:if(f[g])throw Error(\"Invalid diff operation in diff_fromDelta: \"+\nf[g]);}}if(e!=a.length)throw Error(\"Delta length (\"+e+\") does not equal source text length (\"+a.length+\").\");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error(\"Null input. (match_main)\");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};\ndiff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return f.Match_Distance?e+g/f.Match_Distance:g?1:e}if(b.length>this.Match_MaxBits)throw Error(\"Pattern too long for this browser.\");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));var l=1<<b.length-1;h=-1;for(var k,m,p=b.length+a.length,x,w=0;w<b.length;w++){k=0;for(m=p;k<m;)d(w,\nc+m)<=g?k=m:p=m,m=Math.floor((p-k)/2+k);p=m;k=Math.max(1,c-m+1);var q=Math.min(c+m,a.length)+b.length;m=Array(q+2);for(m[q+1]=(1<<w)-1;q>=k;q--){var t=e[a.charAt(q-1)];m[q]=0===w?(m[q+1]<<1|1)&t:(m[q+1]<<1|1)&t|(x[q+1]|x[q])<<1|1|x[q+1];if(m[q]&l&&(t=d(w,q-1),t<=g))if(g=t,h=q-1,h>c)k=Math.max(1,2*c-h);else break}if(d(w+1,c)>g)break;x=m}return h};\ndiff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};\ndiff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([DIFF_EQUAL,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([DIFF_EQUAL,d]);a.start1-=c.length;a.start2-=\nc.length;a.length1+=c.length+d.length;a.length2+=c.length+d.length}};\ndiff_match_patch.prototype.patch_make=function(a,b,c){if(\"string\"==typeof a&&\"string\"==typeof b&&\"undefined\"==typeof c){var d=a;b=this.diff_main(d,b,!0);2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b))}else if(a&&\"object\"==typeof a&&\"undefined\"==typeof b&&\"undefined\"==typeof c)b=a,d=this.diff_text1(b);else if(\"string\"==typeof a&&b&&\"object\"==typeof b&&\"undefined\"==typeof c)d=a;else if(\"string\"==typeof a&&\"string\"==typeof b&&c&&\"object\"==typeof c)d=a,b=c;else throw Error(\"Unknown call format to patch_make.\");\nif(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,l=0;l<b.length;l++){var k=b[l][0],m=b[l][1];e||k===DIFF_EQUAL||(a.start1=f,a.start2=g);switch(k){case DIFF_INSERT:a.diffs[e++]=b[l];a.length2+=m.length;d=d.substring(0,g)+m+d.substring(g);break;case DIFF_DELETE:a.length1+=m.length;a.diffs[e++]=b[l];d=d.substring(0,g)+d.substring(g+m.length);break;case DIFF_EQUAL:m.length<=2*this.Patch_Margin&&e&&b.length!=l+1?(a.diffs[e++]=b[l],a.length1+=m.length,a.length2+=m.length):\nm.length>=2*this.Patch_Margin&&e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}k!==DIFF_INSERT&&(f+=m.length);k!==DIFF_DELETE&&(g+=m.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};\ndiff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};\ndiff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),l=-1;if(h.length>this.Match_MaxBits){var k=this.match_main(b,h.substring(0,this.Match_MaxBits),g);-1!=k&&(l=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==l||k>=l)&&(k=-1)}else k=this.match_main(b,h,\ng);if(-1==k)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=k-g,g=-1==l?b.substring(k,k+h.length):b.substring(k,l+this.Match_MaxBits),h==g)b=b.substring(0,k)+this.diff_text2(a[f].diffs)+b.substring(k+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);h=0;var m;for(l=0;l<a[f].diffs.length;l++){var p=a[f].diffs[l];p[0]!==DIFF_EQUAL&&(m=this.diff_xIndex(g,h));p[0]===\nDIFF_INSERT?b=b.substring(0,k+m)+p[1]+b.substring(k+m):p[0]===DIFF_DELETE&&(b=b.substring(0,k+m)+b.substring(k+this.diff_xIndex(g,h+p[1].length)));p[0]!==DIFF_DELETE&&(h+=p[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};\ndiff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c=\"\",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;d=a[0];var e=d.diffs;if(0==e.length||e[0][0]!=DIFF_EQUAL)e.unshift([DIFF_EQUAL,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||e[e.length-\n1][0]!=DIFF_EQUAL?(e.push([DIFF_EQUAL,c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};\ndiff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g=\"\";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,l=!0;h.start1=e-g.length;h.start2=f-g.length;\"\"!==g&&(h.length1=h.length2=g.length,h.diffs.push([DIFF_EQUAL,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){g=d.diffs[0][0];var k=d.diffs[0][1];g===DIFF_INSERT?(h.length2+=k.length,f+=k.length,h.diffs.push(d.diffs.shift()),\nl=!1):g===DIFF_DELETE&&1==h.diffs.length&&h.diffs[0][0]==DIFF_EQUAL&&k.length>2*b?(h.length1+=k.length,e+=k.length,l=!1,h.diffs.push([g,k]),d.diffs.shift()):(k=k.substring(0,b-h.length1-this.Patch_Margin),h.length1+=k.length,e+=k.length,g===DIFF_EQUAL?(h.length2+=k.length,f+=k.length):l=!1,h.diffs.push([g,k]),k==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(k.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);k=this.diff_text1(d.diffs).substring(0,\nthis.Patch_Margin);\"\"!==k&&(h.length1+=k.length,h.length2+=k.length,0!==h.diffs.length&&h.diffs[h.diffs.length-1][0]===DIFF_EQUAL?h.diffs[h.diffs.length-1][1]+=k:h.diffs.push([DIFF_EQUAL,k]));l||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join(\"\")};\ndiff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split(\"\\n\");for(var c=0,d=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error(\"Invalid patch string: \"+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);\"\"===e[2]?(f.start1--,f.length1=1):\"0\"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);\"\"===e[4]?(f.start2--,f.length2=1):\"0\"==e[4]?f.length2=0:(f.start2--,f.length2=\nparseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error(\"Illegal escape in patch_fromText: \"+g);}if(\"-\"==e)f.diffs.push([DIFF_DELETE,g]);else if(\"+\"==e)f.diffs.push([DIFF_INSERT,g]);else if(\" \"==e)f.diffs.push([DIFF_EQUAL,g]);else if(\"@\"==e)break;else if(\"\"!==e)throw Error('Invalid patch mode \"'+e+'\" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};\ndiff_match_patch.patch_obj.prototype.toString=function(){for(var a=[\"@@ -\"+(0===this.length1?this.start1+\",0\":1==this.length1?this.start1+1:this.start1+1+\",\"+this.length1)+\" +\"+(0===this.length2?this.start2+\",0\":1==this.length2?this.start2+1:this.start2+1+\",\"+this.length2)+\" @@\\n\"],b,c=0;c<this.diffs.length;c++){switch(this.diffs[c][0]){case DIFF_INSERT:b=\"+\";break;case DIFF_DELETE:b=\"-\";break;case DIFF_EQUAL:b=\" \"}a[c+1]=b+encodeURI(this.diffs[c][1])+\"\\n\"}return a.join(\"\").replace(/%20/g,\" \")};\nthis.diff_match_patch=diff_match_patch;this.DIFF_DELETE=DIFF_DELETE;this.DIFF_INSERT=DIFF_INSERT;this.DIFF_EQUAL=DIFF_EQUAL;\n}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/diff-match-patch/diff_match_patch.js",
"module-type": "library"
},
"$:/core/modules/utils/dom/animations/slide.js": {
"title": "$:/core/modules/utils/dom/animations/slide.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "animation"
},
"$:/core/modules/utils/dom/animator.js": {
"title": "$:/core/modules/utils/dom/animator.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/browser.js": {
"title": "$:/core/modules/utils/dom/browser.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/csscolorparser.js": {
"title": "$:/core/modules/utils/dom/csscolorparser.js",
"text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) { // Clamp to integer 0 .. 255.\n i = Math.round(i); // Seems to be what Chrome does (vs truncation).\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) { // Clamp to float 0.0 .. 1.0.\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) { // int or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_byte(parseFloat(str) / 100 * 255);\n return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) { // float or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_float(parseFloat(str) / 100);\n return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n if (h < 0) h += 1;\n else if (h > 1) h -= 1;\n\n if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n if (h * 2 < 1) return m2;\n if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n return m1;\n}\n\nfunction parseCSSColor(css_str) {\n // Remove all whitespace, not compliant, but should just be more accepting.\n var str = css_str.replace(/ /g, '').toLowerCase();\n\n // Color keywords (and transparent) lookup.\n if (str in kCSSColorTable) return kCSSColorTable[str].slice(); // dup.\n\n // #abc and #abc123 syntax.\n if (str[0] === '#') {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xfff)) return null; // Covers NaN.\n return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n (iv & 0xf0) | ((iv & 0xf0) >> 4),\n (iv & 0xf) | ((iv & 0xf) << 4),\n 1];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffff)) return null; // Covers NaN.\n return [(iv & 0xff0000) >> 16,\n (iv & 0xff00) >> 8,\n iv & 0xff,\n 1];\n }\n\n return null;\n }\n\n var op = str.indexOf('('), ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op+1, ep-(op+1)).split(',');\n var alpha = 1; // To allow case fallthrough.\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'rgb':\n if (params.length !== 3) return null;\n return [parse_css_int(params[0]),\n parse_css_int(params[1]),\n parse_css_int(params[2]),\n alpha];\n case 'hsla':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'hsl':\n if (params.length !== 3) return null;\n var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1\n // NOTE(deanm): According to the CSS spec s/l should only be\n // percentages, but we don't bother and let float or percentage.\n var s = parse_css_float(params[1]);\n var l = parse_css_float(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n alpha];\n default:\n return null;\n }\n }\n\n return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom.js": {
"title": "$:/core/modules/utils/dom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.className && el.className.toString().split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = el.className.split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t}\n\tel.className = c.join(\" \");\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = el.className.split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function() {\n\tif(\"scrollX\" in window) {\n\t\treturn {x: window.scrollX, y: window.scrollY};\n\t} else {\n\t\treturn {x: document.documentElement.scrollLeft, y: document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight || parseInt(minHeight,10);\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\ttry {\n\t\tif(window.localStorage) {\n\t\t\tlocalStorage.setItem(\"tw5-password-\" + name,password);\n\t\t}\n\t} catch(e) {\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\ttry {\n\t\treturn window.localStorage ? localStorage.getItem(\"tw5-password-\" + name) : \"\";\n\t} catch(e) {\n\t\treturn \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n/*\nCopy plain text to the clipboard on browsers that support it\n*/\nexports.copyToClipboard = function(text,options) {\n\toptions = options || {};\n\tvar textArea = document.createElement(\"textarea\");\n\ttextArea.style.position = \"fixed\";\n\ttextArea.style.top = 0;\n\ttextArea.style.left = 0;\n\ttextArea.style.fontSize = \"12pt\";\n\ttextArea.style.width = \"2em\";\n\ttextArea.style.height = \"2em\";\n\ttextArea.style.padding = 0;\n\ttextArea.style.border = \"none\";\n\ttextArea.style.outline = \"none\";\n\ttextArea.style.boxShadow = \"none\";\n\ttextArea.style.background = \"transparent\";\n\ttextArea.value = text;\n\tdocument.body.appendChild(textArea);\n\ttextArea.select();\n\ttextArea.setSelectionRange(0,text.length);\n\tvar succeeded = false;\n\ttry {\n\t\tsucceeded = document.execCommand(\"copy\");\n\t} catch (err) {\n\t}\n\tif(!options.doNotNotify) {\n\t\t$tw.notifier.display(succeeded ? \"$:/language/Notifications/CopiedToClipboard/Succeeded\" : \"$:/language/Notifications/CopiedToClipboard/Failed\");\n\t}\n\tdocument.body.removeChild(textArea);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/dragndrop.js": {
"title": "$:/core/modules/utils/dom/dragndrop.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\tif(event.dataTransfer === undefined) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \tstartActions = options.startActions;\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Invoke drag-start actions if given\n\t\t\t\tif(startActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(startActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t// Collect the tiddlers being dragged\n\t\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \t\tendActions = options.endActions;\n\t\t\t\tif(dragFilter) {\n\t\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t\t}\n\t\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Invoke drag-end actions if given\n\t\t\t\tif(endActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(endActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/http.js": {
"title": "$:/core/modules/utils/dom/http.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tdata = results.join(\"&\");\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,options.url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !$tw.utils.hop(headers,\"Content-type\")) {\n\t\trequest.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e);\n\t}\n\treturn request;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/keyboard.js": {
"title": "$:/core/modules/utils/dom/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/modal.js": {
"title": "$:/core/modules/utils/dom/modal.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Create the wrapper divs\n\tvar wrapper = document.createElement(\"div\"),\n\t\tmodalBackdrop = document.createElement(\"div\"),\n\t\tmodalWrapper = document.createElement(\"div\"),\n\t\tmodalHeader = document.createElement(\"div\"),\n\t\theaderTitle = document.createElement(\"h3\"),\n\t\tmodalBody = document.createElement(\"div\"),\n\t\tmodalLink = document.createElement(\"a\"),\n\t\tmodalFooter = document.createElement(\"div\"),\n\t\tmodalFooterHelp = document.createElement(\"span\"),\n\t\tmodalFooterButtons = document.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(document.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler && tiddler.fields && tiddler.fields.help) {\n\t\tvar link = document.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(document.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + window.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\twindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tdocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tdocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tif($tw.pageContainer) {\n\t\t$tw.utils.toggleClass($tw.pageContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/notifier.js": {
"title": "$:/core/modules/utils/dom/notifier.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/popup.js": {
"title": "$:/core/modules/utils/dom/popup.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\t// Store the popup details if not already there\n\tif(this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode\n\t\t});\n\t}\n\t// Set the state tiddler\n\toptions.wiki.setTextReference(options.title,\n\t\t\t\"(\" + options.domNode.offsetLeft + \",\" + options.domNode.offsetTop + \",\" + \n\t\t\t\toptions.domNode.offsetWidth + \",\" + options.domNode.offsetHeight + \")\");\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/scroller.js": {
"title": "$:/core/modules/utils/dom/scroller.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\treturn this.scrollIntoView(event.target);\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element) {\n\tvar self = this,\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Now get ready to scroll the body\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar getBounds = function() {\n\t\t\tvar clientBounds = element.getBoundingClientRect(),\n\t\t\t\tscrollPosition = $tw.utils.getScrollPosition();\n\t\t\treturn {\n\t\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\t\ttop: clientBounds.top + scrollPosition.y,\n\t\t\t\twidth: clientBounds.width,\n\t\t\t\theight: clientBounds.height\n\t\t\t};\n\t\t},\n\t\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t\t// targetPos/targetSize - position and size of the target element\n\t\t// currentPos/currentSize - position and size of the current scroll viewport\n\t\t// returns: new position of the scroll viewport\n\t\tgetEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = targetPos;\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tdrawFrame = function drawFrame() {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tvar scrollPosition = $tw.utils.getScrollPosition(),\n\t\t\t\tbounds = getBounds(),\n\t\t\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,window.innerWidth),\n\t\t\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,window.innerHeight);\n\t\t\twindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\tdrawFrame();\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/edition-info.js": {
"title": "$:/core/modules/utils/edition-info.js",
"text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/fakedom.js": {
"title": "$:/core/modules/utils/fakedom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis.style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this.style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this.style) {\n\t\t\t\tstyle.push(s + \":\" + this.style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\")\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\treturn \"\";\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn \"\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/filesystem.js": {
"title": "$:/core/modules/utils/filesystem.js",
"text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = $tw.utils.removeTrailingSeparator(srcPath);\n\tdstPath = $tw.utils.removeTrailingSeparator(dstPath);\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = new Buffer(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/logger.js": {
"title": "$:/core/modules/utils/logger.js",
"text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName,options) {\n\toptions = options || {};\n\tthis.componentName = componentName || \"\";\n\tthis.colour = options.colour || \"white\";\n\tthis.enable = \"enable\" in options ? options.enable : true;\n}\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tif(this.enable && console !== undefined && console.log !== undefined) {\n\t\treturn Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour()));\n\t}\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\tif(this.enable) {\n\t\t// Prepare the text of the alert\n\t\tvar text = Array.prototype.join.call(arguments,\" \");\n\t\t// Create alert tiddlers in the browser\n\t\tif($tw.browser) {\n\t\t\t// Check if there is an existing alert with the same text and the same component\n\t\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\t\talertFields,\n\t\t\t\texistingCount,\n\t\t\t\tself = this;\n\t\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(alertFields) {\n\t\t\t\texistingCount = alertFields.count || 1;\n\t\t\t} else {\n\t\t\t\talertFields = {\n\t\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\t\ttext: text,\n\t\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\t\tcomponent: this.componentName\n\t\t\t\t};\n\t\t\t\texistingCount = 0;\n\t\t\t}\n\t\t\talertFields.modified = new Date();\n\t\t\tif(++existingCount > 1) {\n\t\t\t\talertFields.count = existingCount;\n\t\t\t} else {\n\t\t\t\talertFields.count = undefined;\n\t\t\t}\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t\t// Log the alert as well\n\t\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\t// Print an orange message to the console if not in the browser\n\t\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t\t}\t\t\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/parsetree.js": {
"title": "$:/core/modules/utils/parsetree.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/performance.js": {
"title": "$:/core/modules/utils/performance.js",
"text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap of current values of measurements\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n}\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tself.measures = {};\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\tfor(var m in self.measures) {\n\t\t\t\tself.logger.log(\"+\" + m + \": \" + self.measures[m].toFixed(2) + \"ms\");\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments),\n\t\t\t\tvalue = self.measures[name] || 0;\n\t\t\tself.measures[name] = value + $tw.utils.timer(startTime);\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/pluginmaker.js": {
"title": "$:/core/modules/utils/pluginmaker.js",
"text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/transliterate.js": {
"title": "$:/core/modules/utils/transliterate.js",
"text": "/*\\\ntitle: $:/core/modules/utils/transliterate.js\ntype: application/javascript\nmodule-type: utils\n\nTransliteration static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nTransliterate string to ASCII\n\n(Some pairs taken from http://semplicewebsites.com/removing-accents-javascript)\n*/\nexports.transliterationPairs = {\n\t\"Á\":\"A\",\n\t\"Ă\":\"A\",\n\t\"Ắ\":\"A\",\n\t\"Ặ\":\"A\",\n\t\"Ằ\":\"A\",\n\t\"Ẳ\":\"A\",\n\t\"Ẵ\":\"A\",\n\t\"Ǎ\":\"A\",\n\t\"Â\":\"A\",\n\t\"Ấ\":\"A\",\n\t\"Ậ\":\"A\",\n\t\"Ầ\":\"A\",\n\t\"Ẩ\":\"A\",\n\t\"Ẫ\":\"A\",\n\t\"Ä\":\"A\",\n\t\"Ǟ\":\"A\",\n\t\"Ȧ\":\"A\",\n\t\"Ǡ\":\"A\",\n\t\"Ạ\":\"A\",\n\t\"Ȁ\":\"A\",\n\t\"À\":\"A\",\n\t\"Ả\":\"A\",\n\t\"Ȃ\":\"A\",\n\t\"Ā\":\"A\",\n\t\"Ą\":\"A\",\n\t\"Å\":\"A\",\n\t\"Ǻ\":\"A\",\n\t\"Ḁ\":\"A\",\n\t\"Ⱥ\":\"A\",\n\t\"Ã\":\"A\",\n\t\"Ꜳ\":\"AA\",\n\t\"Æ\":\"AE\",\n\t\"Ǽ\":\"AE\",\n\t\"Ǣ\":\"AE\",\n\t\"Ꜵ\":\"AO\",\n\t\"Ꜷ\":\"AU\",\n\t\"Ꜹ\":\"AV\",\n\t\"Ꜻ\":\"AV\",\n\t\"Ꜽ\":\"AY\",\n\t\"Ḃ\":\"B\",\n\t\"Ḅ\":\"B\",\n\t\"Ɓ\":\"B\",\n\t\"Ḇ\":\"B\",\n\t\"Ƀ\":\"B\",\n\t\"Ƃ\":\"B\",\n\t\"Ć\":\"C\",\n\t\"Č\":\"C\",\n\t\"Ç\":\"C\",\n\t\"Ḉ\":\"C\",\n\t\"Ĉ\":\"C\",\n\t\"Ċ\":\"C\",\n\t\"Ƈ\":\"C\",\n\t\"Ȼ\":\"C\",\n\t\"Ď\":\"D\",\n\t\"Ḑ\":\"D\",\n\t\"Ḓ\":\"D\",\n\t\"Ḋ\":\"D\",\n\t\"Ḍ\":\"D\",\n\t\"Ɗ\":\"D\",\n\t\"Ḏ\":\"D\",\n\t\"Dz\":\"D\",\n\t\"Dž\":\"D\",\n\t\"Đ\":\"D\",\n\t\"Ƌ\":\"D\",\n\t\"DZ\":\"DZ\",\n\t\"DŽ\":\"DZ\",\n\t\"É\":\"E\",\n\t\"Ĕ\":\"E\",\n\t\"Ě\":\"E\",\n\t\"Ȩ\":\"E\",\n\t\"Ḝ\":\"E\",\n\t\"Ê\":\"E\",\n\t\"Ế\":\"E\",\n\t\"Ệ\":\"E\",\n\t\"Ề\":\"E\",\n\t\"Ể\":\"E\",\n\t\"Ễ\":\"E\",\n\t\"Ḙ\":\"E\",\n\t\"Ë\":\"E\",\n\t\"Ė\":\"E\",\n\t\"Ẹ\":\"E\",\n\t\"Ȅ\":\"E\",\n\t\"È\":\"E\",\n\t\"Ẻ\":\"E\",\n\t\"Ȇ\":\"E\",\n\t\"Ē\":\"E\",\n\t\"Ḗ\":\"E\",\n\t\"Ḕ\":\"E\",\n\t\"Ę\":\"E\",\n\t\"Ɇ\":\"E\",\n\t\"Ẽ\":\"E\",\n\t\"Ḛ\":\"E\",\n\t\"Ꝫ\":\"ET\",\n\t\"Ḟ\":\"F\",\n\t\"Ƒ\":\"F\",\n\t\"Ǵ\":\"G\",\n\t\"Ğ\":\"G\",\n\t\"Ǧ\":\"G\",\n\t\"Ģ\":\"G\",\n\t\"Ĝ\":\"G\",\n\t\"Ġ\":\"G\",\n\t\"Ɠ\":\"G\",\n\t\"Ḡ\":\"G\",\n\t\"Ǥ\":\"G\",\n\t\"Ḫ\":\"H\",\n\t\"Ȟ\":\"H\",\n\t\"Ḩ\":\"H\",\n\t\"Ĥ\":\"H\",\n\t\"Ⱨ\":\"H\",\n\t\"Ḧ\":\"H\",\n\t\"Ḣ\":\"H\",\n\t\"Ḥ\":\"H\",\n\t\"Ħ\":\"H\",\n\t\"Í\":\"I\",\n\t\"Ĭ\":\"I\",\n\t\"Ǐ\":\"I\",\n\t\"Î\":\"I\",\n\t\"Ï\":\"I\",\n\t\"Ḯ\":\"I\",\n\t\"İ\":\"I\",\n\t\"Ị\":\"I\",\n\t\"Ȉ\":\"I\",\n\t\"Ì\":\"I\",\n\t\"Ỉ\":\"I\",\n\t\"Ȋ\":\"I\",\n\t\"Ī\":\"I\",\n\t\"Į\":\"I\",\n\t\"Ɨ\":\"I\",\n\t\"Ĩ\":\"I\",\n\t\"Ḭ\":\"I\",\n\t\"Ꝺ\":\"D\",\n\t\"Ꝼ\":\"F\",\n\t\"Ᵹ\":\"G\",\n\t\"Ꞃ\":\"R\",\n\t\"Ꞅ\":\"S\",\n\t\"Ꞇ\":\"T\",\n\t\"Ꝭ\":\"IS\",\n\t\"Ĵ\":\"J\",\n\t\"Ɉ\":\"J\",\n\t\"Ḱ\":\"K\",\n\t\"Ǩ\":\"K\",\n\t\"Ķ\":\"K\",\n\t\"Ⱪ\":\"K\",\n\t\"Ꝃ\":\"K\",\n\t\"Ḳ\":\"K\",\n\t\"Ƙ\":\"K\",\n\t\"Ḵ\":\"K\",\n\t\"Ꝁ\":\"K\",\n\t\"Ꝅ\":\"K\",\n\t\"Ĺ\":\"L\",\n\t\"Ƚ\":\"L\",\n\t\"Ľ\":\"L\",\n\t\"Ļ\":\"L\",\n\t\"Ḽ\":\"L\",\n\t\"Ḷ\":\"L\",\n\t\"Ḹ\":\"L\",\n\t\"Ⱡ\":\"L\",\n\t\"Ꝉ\":\"L\",\n\t\"Ḻ\":\"L\",\n\t\"Ŀ\":\"L\",\n\t\"Ɫ\":\"L\",\n\t\"Lj\":\"L\",\n\t\"Ł\":\"L\",\n\t\"LJ\":\"LJ\",\n\t\"Ḿ\":\"M\",\n\t\"Ṁ\":\"M\",\n\t\"Ṃ\":\"M\",\n\t\"Ɱ\":\"M\",\n\t\"Ń\":\"N\",\n\t\"Ň\":\"N\",\n\t\"Ņ\":\"N\",\n\t\"Ṋ\":\"N\",\n\t\"Ṅ\":\"N\",\n\t\"Ṇ\":\"N\",\n\t\"Ǹ\":\"N\",\n\t\"Ɲ\":\"N\",\n\t\"Ṉ\":\"N\",\n\t\"Ƞ\":\"N\",\n\t\"Nj\":\"N\",\n\t\"Ñ\":\"N\",\n\t\"NJ\":\"NJ\",\n\t\"Ó\":\"O\",\n\t\"Ŏ\":\"O\",\n\t\"Ǒ\":\"O\",\n\t\"Ô\":\"O\",\n\t\"Ố\":\"O\",\n\t\"Ộ\":\"O\",\n\t\"Ồ\":\"O\",\n\t\"Ổ\":\"O\",\n\t\"Ỗ\":\"O\",\n\t\"Ö\":\"O\",\n\t\"Ȫ\":\"O\",\n\t\"Ȯ\":\"O\",\n\t\"Ȱ\":\"O\",\n\t\"Ọ\":\"O\",\n\t\"Ő\":\"O\",\n\t\"Ȍ\":\"O\",\n\t\"Ò\":\"O\",\n\t\"Ỏ\":\"O\",\n\t\"Ơ\":\"O\",\n\t\"Ớ\":\"O\",\n\t\"Ợ\":\"O\",\n\t\"Ờ\":\"O\",\n\t\"Ở\":\"O\",\n\t\"Ỡ\":\"O\",\n\t\"Ȏ\":\"O\",\n\t\"Ꝋ\":\"O\",\n\t\"Ꝍ\":\"O\",\n\t\"Ō\":\"O\",\n\t\"Ṓ\":\"O\",\n\t\"Ṑ\":\"O\",\n\t\"Ɵ\":\"O\",\n\t\"Ǫ\":\"O\",\n\t\"Ǭ\":\"O\",\n\t\"Ø\":\"O\",\n\t\"Ǿ\":\"O\",\n\t\"Õ\":\"O\",\n\t\"Ṍ\":\"O\",\n\t\"Ṏ\":\"O\",\n\t\"Ȭ\":\"O\",\n\t\"Ƣ\":\"OI\",\n\t\"Ꝏ\":\"OO\",\n\t\"Ɛ\":\"E\",\n\t\"Ɔ\":\"O\",\n\t\"Ȣ\":\"OU\",\n\t\"Ṕ\":\"P\",\n\t\"Ṗ\":\"P\",\n\t\"Ꝓ\":\"P\",\n\t\"Ƥ\":\"P\",\n\t\"Ꝕ\":\"P\",\n\t\"Ᵽ\":\"P\",\n\t\"Ꝑ\":\"P\",\n\t\"Ꝙ\":\"Q\",\n\t\"Ꝗ\":\"Q\",\n\t\"Ŕ\":\"R\",\n\t\"Ř\":\"R\",\n\t\"Ŗ\":\"R\",\n\t\"Ṙ\":\"R\",\n\t\"Ṛ\":\"R\",\n\t\"Ṝ\":\"R\",\n\t\"Ȑ\":\"R\",\n\t\"Ȓ\":\"R\",\n\t\"Ṟ\":\"R\",\n\t\"Ɍ\":\"R\",\n\t\"Ɽ\":\"R\",\n\t\"Ꜿ\":\"C\",\n\t\"Ǝ\":\"E\",\n\t\"Ś\":\"S\",\n\t\"Ṥ\":\"S\",\n\t\"Š\":\"S\",\n\t\"Ṧ\":\"S\",\n\t\"Ş\":\"S\",\n\t\"Ŝ\":\"S\",\n\t\"Ș\":\"S\",\n\t\"Ṡ\":\"S\",\n\t\"Ṣ\":\"S\",\n\t\"Ṩ\":\"S\",\n\t\"Ť\":\"T\",\n\t\"Ţ\":\"T\",\n\t\"Ṱ\":\"T\",\n\t\"Ț\":\"T\",\n\t\"Ⱦ\":\"T\",\n\t\"Ṫ\":\"T\",\n\t\"Ṭ\":\"T\",\n\t\"Ƭ\":\"T\",\n\t\"Ṯ\":\"T\",\n\t\"Ʈ\":\"T\",\n\t\"Ŧ\":\"T\",\n\t\"Ɐ\":\"A\",\n\t\"Ꞁ\":\"L\",\n\t\"Ɯ\":\"M\",\n\t\"Ʌ\":\"V\",\n\t\"Ꜩ\":\"TZ\",\n\t\"Ú\":\"U\",\n\t\"Ŭ\":\"U\",\n\t\"Ǔ\":\"U\",\n\t\"Û\":\"U\",\n\t\"Ṷ\":\"U\",\n\t\"Ü\":\"U\",\n\t\"Ǘ\":\"U\",\n\t\"Ǚ\":\"U\",\n\t\"Ǜ\":\"U\",\n\t\"Ǖ\":\"U\",\n\t\"Ṳ\":\"U\",\n\t\"Ụ\":\"U\",\n\t\"Ű\":\"U\",\n\t\"Ȕ\":\"U\",\n\t\"Ù\":\"U\",\n\t\"Ủ\":\"U\",\n\t\"Ư\":\"U\",\n\t\"Ứ\":\"U\",\n\t\"Ự\":\"U\",\n\t\"Ừ\":\"U\",\n\t\"Ử\":\"U\",\n\t\"Ữ\":\"U\",\n\t\"Ȗ\":\"U\",\n\t\"Ū\":\"U\",\n\t\"Ṻ\":\"U\",\n\t\"Ų\":\"U\",\n\t\"Ů\":\"U\",\n\t\"Ũ\":\"U\",\n\t\"Ṹ\":\"U\",\n\t\"Ṵ\":\"U\",\n\t\"Ꝟ\":\"V\",\n\t\"Ṿ\":\"V\",\n\t\"Ʋ\":\"V\",\n\t\"Ṽ\":\"V\",\n\t\"Ꝡ\":\"VY\",\n\t\"Ẃ\":\"W\",\n\t\"Ŵ\":\"W\",\n\t\"Ẅ\":\"W\",\n\t\"Ẇ\":\"W\",\n\t\"Ẉ\":\"W\",\n\t\"Ẁ\":\"W\",\n\t\"Ⱳ\":\"W\",\n\t\"Ẍ\":\"X\",\n\t\"Ẋ\":\"X\",\n\t\"Ý\":\"Y\",\n\t\"Ŷ\":\"Y\",\n\t\"Ÿ\":\"Y\",\n\t\"Ẏ\":\"Y\",\n\t\"Ỵ\":\"Y\",\n\t\"Ỳ\":\"Y\",\n\t\"Ƴ\":\"Y\",\n\t\"Ỷ\":\"Y\",\n\t\"Ỿ\":\"Y\",\n\t\"Ȳ\":\"Y\",\n\t\"Ɏ\":\"Y\",\n\t\"Ỹ\":\"Y\",\n\t\"Ź\":\"Z\",\n\t\"Ž\":\"Z\",\n\t\"Ẑ\":\"Z\",\n\t\"Ⱬ\":\"Z\",\n\t\"Ż\":\"Z\",\n\t\"Ẓ\":\"Z\",\n\t\"Ȥ\":\"Z\",\n\t\"Ẕ\":\"Z\",\n\t\"Ƶ\":\"Z\",\n\t\"IJ\":\"IJ\",\n\t\"Œ\":\"OE\",\n\t\"ᴀ\":\"A\",\n\t\"ᴁ\":\"AE\",\n\t\"ʙ\":\"B\",\n\t\"ᴃ\":\"B\",\n\t\"ᴄ\":\"C\",\n\t\"ᴅ\":\"D\",\n\t\"ᴇ\":\"E\",\n\t\"ꜰ\":\"F\",\n\t\"ɢ\":\"G\",\n\t\"ʛ\":\"G\",\n\t\"ʜ\":\"H\",\n\t\"ɪ\":\"I\",\n\t\"ʁ\":\"R\",\n\t\"ᴊ\":\"J\",\n\t\"ᴋ\":\"K\",\n\t\"ʟ\":\"L\",\n\t\"ᴌ\":\"L\",\n\t\"ᴍ\":\"M\",\n\t\"ɴ\":\"N\",\n\t\"ᴏ\":\"O\",\n\t\"ɶ\":\"OE\",\n\t\"ᴐ\":\"O\",\n\t\"ᴕ\":\"OU\",\n\t\"ᴘ\":\"P\",\n\t\"ʀ\":\"R\",\n\t\"ᴎ\":\"N\",\n\t\"ᴙ\":\"R\",\n\t\"ꜱ\":\"S\",\n\t\"ᴛ\":\"T\",\n\t\"ⱻ\":\"E\",\n\t\"ᴚ\":\"R\",\n\t\"ᴜ\":\"U\",\n\t\"ᴠ\":\"V\",\n\t\"ᴡ\":\"W\",\n\t\"ʏ\":\"Y\",\n\t\"ᴢ\":\"Z\",\n\t\"á\":\"a\",\n\t\"ă\":\"a\",\n\t\"ắ\":\"a\",\n\t\"ặ\":\"a\",\n\t\"ằ\":\"a\",\n\t\"ẳ\":\"a\",\n\t\"ẵ\":\"a\",\n\t\"ǎ\":\"a\",\n\t\"â\":\"a\",\n\t\"ấ\":\"a\",\n\t\"ậ\":\"a\",\n\t\"ầ\":\"a\",\n\t\"ẩ\":\"a\",\n\t\"ẫ\":\"a\",\n\t\"ä\":\"a\",\n\t\"ǟ\":\"a\",\n\t\"ȧ\":\"a\",\n\t\"ǡ\":\"a\",\n\t\"ạ\":\"a\",\n\t\"ȁ\":\"a\",\n\t\"à\":\"a\",\n\t\"ả\":\"a\",\n\t\"ȃ\":\"a\",\n\t\"ā\":\"a\",\n\t\"ą\":\"a\",\n\t\"ᶏ\":\"a\",\n\t\"ẚ\":\"a\",\n\t\"å\":\"a\",\n\t\"ǻ\":\"a\",\n\t\"ḁ\":\"a\",\n\t\"ⱥ\":\"a\",\n\t\"ã\":\"a\",\n\t\"ꜳ\":\"aa\",\n\t\"æ\":\"ae\",\n\t\"ǽ\":\"ae\",\n\t\"ǣ\":\"ae\",\n\t\"ꜵ\":\"ao\",\n\t\"ꜷ\":\"au\",\n\t\"ꜹ\":\"av\",\n\t\"ꜻ\":\"av\",\n\t\"ꜽ\":\"ay\",\n\t\"ḃ\":\"b\",\n\t\"ḅ\":\"b\",\n\t\"ɓ\":\"b\",\n\t\"ḇ\":\"b\",\n\t\"ᵬ\":\"b\",\n\t\"ᶀ\":\"b\",\n\t\"ƀ\":\"b\",\n\t\"ƃ\":\"b\",\n\t\"ɵ\":\"o\",\n\t\"ć\":\"c\",\n\t\"č\":\"c\",\n\t\"ç\":\"c\",\n\t\"ḉ\":\"c\",\n\t\"ĉ\":\"c\",\n\t\"ɕ\":\"c\",\n\t\"ċ\":\"c\",\n\t\"ƈ\":\"c\",\n\t\"ȼ\":\"c\",\n\t\"ď\":\"d\",\n\t\"ḑ\":\"d\",\n\t\"ḓ\":\"d\",\n\t\"ȡ\":\"d\",\n\t\"ḋ\":\"d\",\n\t\"ḍ\":\"d\",\n\t\"ɗ\":\"d\",\n\t\"ᶑ\":\"d\",\n\t\"ḏ\":\"d\",\n\t\"ᵭ\":\"d\",\n\t\"ᶁ\":\"d\",\n\t\"đ\":\"d\",\n\t\"ɖ\":\"d\",\n\t\"ƌ\":\"d\",\n\t\"ı\":\"i\",\n\t\"ȷ\":\"j\",\n\t\"ɟ\":\"j\",\n\t\"ʄ\":\"j\",\n\t\"dz\":\"dz\",\n\t\"dž\":\"dz\",\n\t\"é\":\"e\",\n\t\"ĕ\":\"e\",\n\t\"ě\":\"e\",\n\t\"ȩ\":\"e\",\n\t\"ḝ\":\"e\",\n\t\"ê\":\"e\",\n\t\"ế\":\"e\",\n\t\"ệ\":\"e\",\n\t\"ề\":\"e\",\n\t\"ể\":\"e\",\n\t\"ễ\":\"e\",\n\t\"ḙ\":\"e\",\n\t\"ë\":\"e\",\n\t\"ė\":\"e\",\n\t\"ẹ\":\"e\",\n\t\"ȅ\":\"e\",\n\t\"è\":\"e\",\n\t\"ẻ\":\"e\",\n\t\"ȇ\":\"e\",\n\t\"ē\":\"e\",\n\t\"ḗ\":\"e\",\n\t\"ḕ\":\"e\",\n\t\"ⱸ\":\"e\",\n\t\"ę\":\"e\",\n\t\"ᶒ\":\"e\",\n\t\"ɇ\":\"e\",\n\t\"ẽ\":\"e\",\n\t\"ḛ\":\"e\",\n\t\"ꝫ\":\"et\",\n\t\"ḟ\":\"f\",\n\t\"ƒ\":\"f\",\n\t\"ᵮ\":\"f\",\n\t\"ᶂ\":\"f\",\n\t\"ǵ\":\"g\",\n\t\"ğ\":\"g\",\n\t\"ǧ\":\"g\",\n\t\"ģ\":\"g\",\n\t\"ĝ\":\"g\",\n\t\"ġ\":\"g\",\n\t\"ɠ\":\"g\",\n\t\"ḡ\":\"g\",\n\t\"ᶃ\":\"g\",\n\t\"ǥ\":\"g\",\n\t\"ḫ\":\"h\",\n\t\"ȟ\":\"h\",\n\t\"ḩ\":\"h\",\n\t\"ĥ\":\"h\",\n\t\"ⱨ\":\"h\",\n\t\"ḧ\":\"h\",\n\t\"ḣ\":\"h\",\n\t\"ḥ\":\"h\",\n\t\"ɦ\":\"h\",\n\t\"ẖ\":\"h\",\n\t\"ħ\":\"h\",\n\t\"ƕ\":\"hv\",\n\t\"í\":\"i\",\n\t\"ĭ\":\"i\",\n\t\"ǐ\":\"i\",\n\t\"î\":\"i\",\n\t\"ï\":\"i\",\n\t\"ḯ\":\"i\",\n\t\"ị\":\"i\",\n\t\"ȉ\":\"i\",\n\t\"ì\":\"i\",\n\t\"ỉ\":\"i\",\n\t\"ȋ\":\"i\",\n\t\"ī\":\"i\",\n\t\"į\":\"i\",\n\t\"ᶖ\":\"i\",\n\t\"ɨ\":\"i\",\n\t\"ĩ\":\"i\",\n\t\"ḭ\":\"i\",\n\t\"ꝺ\":\"d\",\n\t\"ꝼ\":\"f\",\n\t\"ᵹ\":\"g\",\n\t\"ꞃ\":\"r\",\n\t\"ꞅ\":\"s\",\n\t\"ꞇ\":\"t\",\n\t\"ꝭ\":\"is\",\n\t\"ǰ\":\"j\",\n\t\"ĵ\":\"j\",\n\t\"ʝ\":\"j\",\n\t\"ɉ\":\"j\",\n\t\"ḱ\":\"k\",\n\t\"ǩ\":\"k\",\n\t\"ķ\":\"k\",\n\t\"ⱪ\":\"k\",\n\t\"ꝃ\":\"k\",\n\t\"ḳ\":\"k\",\n\t\"ƙ\":\"k\",\n\t\"ḵ\":\"k\",\n\t\"ᶄ\":\"k\",\n\t\"ꝁ\":\"k\",\n\t\"ꝅ\":\"k\",\n\t\"ĺ\":\"l\",\n\t\"ƚ\":\"l\",\n\t\"ɬ\":\"l\",\n\t\"ľ\":\"l\",\n\t\"ļ\":\"l\",\n\t\"ḽ\":\"l\",\n\t\"ȴ\":\"l\",\n\t\"ḷ\":\"l\",\n\t\"ḹ\":\"l\",\n\t\"ⱡ\":\"l\",\n\t\"ꝉ\":\"l\",\n\t\"ḻ\":\"l\",\n\t\"ŀ\":\"l\",\n\t\"ɫ\":\"l\",\n\t\"ᶅ\":\"l\",\n\t\"ɭ\":\"l\",\n\t\"ł\":\"l\",\n\t\"lj\":\"lj\",\n\t\"ſ\":\"s\",\n\t\"ẜ\":\"s\",\n\t\"ẛ\":\"s\",\n\t\"ẝ\":\"s\",\n\t\"ḿ\":\"m\",\n\t\"ṁ\":\"m\",\n\t\"ṃ\":\"m\",\n\t\"ɱ\":\"m\",\n\t\"ᵯ\":\"m\",\n\t\"ᶆ\":\"m\",\n\t\"ń\":\"n\",\n\t\"ň\":\"n\",\n\t\"ņ\":\"n\",\n\t\"ṋ\":\"n\",\n\t\"ȵ\":\"n\",\n\t\"ṅ\":\"n\",\n\t\"ṇ\":\"n\",\n\t\"ǹ\":\"n\",\n\t\"ɲ\":\"n\",\n\t\"ṉ\":\"n\",\n\t\"ƞ\":\"n\",\n\t\"ᵰ\":\"n\",\n\t\"ᶇ\":\"n\",\n\t\"ɳ\":\"n\",\n\t\"ñ\":\"n\",\n\t\"nj\":\"nj\",\n\t\"ó\":\"o\",\n\t\"ŏ\":\"o\",\n\t\"ǒ\":\"o\",\n\t\"ô\":\"o\",\n\t\"ố\":\"o\",\n\t\"ộ\":\"o\",\n\t\"ồ\":\"o\",\n\t\"ổ\":\"o\",\n\t\"ỗ\":\"o\",\n\t\"ö\":\"o\",\n\t\"ȫ\":\"o\",\n\t\"ȯ\":\"o\",\n\t\"ȱ\":\"o\",\n\t\"ọ\":\"o\",\n\t\"ő\":\"o\",\n\t\"ȍ\":\"o\",\n\t\"ò\":\"o\",\n\t\"ỏ\":\"o\",\n\t\"ơ\":\"o\",\n\t\"ớ\":\"o\",\n\t\"ợ\":\"o\",\n\t\"ờ\":\"o\",\n\t\"ở\":\"o\",\n\t\"ỡ\":\"o\",\n\t\"ȏ\":\"o\",\n\t\"ꝋ\":\"o\",\n\t\"ꝍ\":\"o\",\n\t\"ⱺ\":\"o\",\n\t\"ō\":\"o\",\n\t\"ṓ\":\"o\",\n\t\"ṑ\":\"o\",\n\t\"ǫ\":\"o\",\n\t\"ǭ\":\"o\",\n\t\"ø\":\"o\",\n\t\"ǿ\":\"o\",\n\t\"õ\":\"o\",\n\t\"ṍ\":\"o\",\n\t\"ṏ\":\"o\",\n\t\"ȭ\":\"o\",\n\t\"ƣ\":\"oi\",\n\t\"ꝏ\":\"oo\",\n\t\"ɛ\":\"e\",\n\t\"ᶓ\":\"e\",\n\t\"ɔ\":\"o\",\n\t\"ᶗ\":\"o\",\n\t\"ȣ\":\"ou\",\n\t\"ṕ\":\"p\",\n\t\"ṗ\":\"p\",\n\t\"ꝓ\":\"p\",\n\t\"ƥ\":\"p\",\n\t\"ᵱ\":\"p\",\n\t\"ᶈ\":\"p\",\n\t\"ꝕ\":\"p\",\n\t\"ᵽ\":\"p\",\n\t\"ꝑ\":\"p\",\n\t\"ꝙ\":\"q\",\n\t\"ʠ\":\"q\",\n\t\"ɋ\":\"q\",\n\t\"ꝗ\":\"q\",\n\t\"ŕ\":\"r\",\n\t\"ř\":\"r\",\n\t\"ŗ\":\"r\",\n\t\"ṙ\":\"r\",\n\t\"ṛ\":\"r\",\n\t\"ṝ\":\"r\",\n\t\"ȑ\":\"r\",\n\t\"ɾ\":\"r\",\n\t\"ᵳ\":\"r\",\n\t\"ȓ\":\"r\",\n\t\"ṟ\":\"r\",\n\t\"ɼ\":\"r\",\n\t\"ᵲ\":\"r\",\n\t\"ᶉ\":\"r\",\n\t\"ɍ\":\"r\",\n\t\"ɽ\":\"r\",\n\t\"ↄ\":\"c\",\n\t\"ꜿ\":\"c\",\n\t\"ɘ\":\"e\",\n\t\"ɿ\":\"r\",\n\t\"ś\":\"s\",\n\t\"ṥ\":\"s\",\n\t\"š\":\"s\",\n\t\"ṧ\":\"s\",\n\t\"ş\":\"s\",\n\t\"ŝ\":\"s\",\n\t\"ș\":\"s\",\n\t\"ṡ\":\"s\",\n\t\"ṣ\":\"s\",\n\t\"ṩ\":\"s\",\n\t\"ʂ\":\"s\",\n\t\"ᵴ\":\"s\",\n\t\"ᶊ\":\"s\",\n\t\"ȿ\":\"s\",\n\t\"ɡ\":\"g\",\n\t\"ᴑ\":\"o\",\n\t\"ᴓ\":\"o\",\n\t\"ᴝ\":\"u\",\n\t\"ť\":\"t\",\n\t\"ţ\":\"t\",\n\t\"ṱ\":\"t\",\n\t\"ț\":\"t\",\n\t\"ȶ\":\"t\",\n\t\"ẗ\":\"t\",\n\t\"ⱦ\":\"t\",\n\t\"ṫ\":\"t\",\n\t\"ṭ\":\"t\",\n\t\"ƭ\":\"t\",\n\t\"ṯ\":\"t\",\n\t\"ᵵ\":\"t\",\n\t\"ƫ\":\"t\",\n\t\"ʈ\":\"t\",\n\t\"ŧ\":\"t\",\n\t\"ᵺ\":\"th\",\n\t\"ɐ\":\"a\",\n\t\"ᴂ\":\"ae\",\n\t\"ǝ\":\"e\",\n\t\"ᵷ\":\"g\",\n\t\"ɥ\":\"h\",\n\t\"ʮ\":\"h\",\n\t\"ʯ\":\"h\",\n\t\"ᴉ\":\"i\",\n\t\"ʞ\":\"k\",\n\t\"ꞁ\":\"l\",\n\t\"ɯ\":\"m\",\n\t\"ɰ\":\"m\",\n\t\"ᴔ\":\"oe\",\n\t\"ɹ\":\"r\",\n\t\"ɻ\":\"r\",\n\t\"ɺ\":\"r\",\n\t\"ⱹ\":\"r\",\n\t\"ʇ\":\"t\",\n\t\"ʌ\":\"v\",\n\t\"ʍ\":\"w\",\n\t\"ʎ\":\"y\",\n\t\"ꜩ\":\"tz\",\n\t\"ú\":\"u\",\n\t\"ŭ\":\"u\",\n\t\"ǔ\":\"u\",\n\t\"û\":\"u\",\n\t\"ṷ\":\"u\",\n\t\"ü\":\"u\",\n\t\"ǘ\":\"u\",\n\t\"ǚ\":\"u\",\n\t\"ǜ\":\"u\",\n\t\"ǖ\":\"u\",\n\t\"ṳ\":\"u\",\n\t\"ụ\":\"u\",\n\t\"ű\":\"u\",\n\t\"ȕ\":\"u\",\n\t\"ù\":\"u\",\n\t\"ủ\":\"u\",\n\t\"ư\":\"u\",\n\t\"ứ\":\"u\",\n\t\"ự\":\"u\",\n\t\"ừ\":\"u\",\n\t\"ử\":\"u\",\n\t\"ữ\":\"u\",\n\t\"ȗ\":\"u\",\n\t\"ū\":\"u\",\n\t\"ṻ\":\"u\",\n\t\"ų\":\"u\",\n\t\"ᶙ\":\"u\",\n\t\"ů\":\"u\",\n\t\"ũ\":\"u\",\n\t\"ṹ\":\"u\",\n\t\"ṵ\":\"u\",\n\t\"ᵫ\":\"ue\",\n\t\"ꝸ\":\"um\",\n\t\"ⱴ\":\"v\",\n\t\"ꝟ\":\"v\",\n\t\"ṿ\":\"v\",\n\t\"ʋ\":\"v\",\n\t\"ᶌ\":\"v\",\n\t\"ⱱ\":\"v\",\n\t\"ṽ\":\"v\",\n\t\"ꝡ\":\"vy\",\n\t\"ẃ\":\"w\",\n\t\"ŵ\":\"w\",\n\t\"ẅ\":\"w\",\n\t\"ẇ\":\"w\",\n\t\"ẉ\":\"w\",\n\t\"ẁ\":\"w\",\n\t\"ⱳ\":\"w\",\n\t\"ẘ\":\"w\",\n\t\"ẍ\":\"x\",\n\t\"ẋ\":\"x\",\n\t\"ᶍ\":\"x\",\n\t\"ý\":\"y\",\n\t\"ŷ\":\"y\",\n\t\"ÿ\":\"y\",\n\t\"ẏ\":\"y\",\n\t\"ỵ\":\"y\",\n\t\"ỳ\":\"y\",\n\t\"ƴ\":\"y\",\n\t\"ỷ\":\"y\",\n\t\"ỿ\":\"y\",\n\t\"ȳ\":\"y\",\n\t\"ẙ\":\"y\",\n\t\"ɏ\":\"y\",\n\t\"ỹ\":\"y\",\n\t\"ź\":\"z\",\n\t\"ž\":\"z\",\n\t\"ẑ\":\"z\",\n\t\"ʑ\":\"z\",\n\t\"ⱬ\":\"z\",\n\t\"ż\":\"z\",\n\t\"ẓ\":\"z\",\n\t\"ȥ\":\"z\",\n\t\"ẕ\":\"z\",\n\t\"ᵶ\":\"z\",\n\t\"ᶎ\":\"z\",\n\t\"ʐ\":\"z\",\n\t\"ƶ\":\"z\",\n\t\"ɀ\":\"z\",\n\t\"ff\":\"ff\",\n\t\"ffi\":\"ffi\",\n\t\"ffl\":\"ffl\",\n\t\"fi\":\"fi\",\n\t\"fl\":\"fl\",\n\t\"ij\":\"ij\",\n\t\"œ\":\"oe\",\n\t\"st\":\"st\",\n\t\"ₐ\":\"a\",\n\t\"ₑ\":\"e\",\n\t\"ᵢ\":\"i\",\n\t\"ⱼ\":\"j\",\n\t\"ₒ\":\"o\",\n\t\"ᵣ\":\"r\",\n\t\"ᵤ\":\"u\",\n\t\"ᵥ\":\"v\",\n\t\"ₓ\":\"x\",\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.replace(/[^A-Za-z0-9\\[\\] ]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || ch\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/utils.js": {
"title": "$:/core/modules/utils/utils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDisplay a message, in colour if we're on a terminal\n*/\nexports.log = function(text,colour) {\n\tconsole.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);\n};\n\nexports.terminalColour = function(colour) {\n\tif(!$tw.browser && $tw.node && process.stdout.isTTY) {\n\t\tif(colour) {\n\t\t\tvar code = exports.terminalColourLookup[colour];\n\t\t\tif(code) {\n\t\t\t\treturn \"\\x1b[\" + code + \"m\";\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"\\x1b[0m\"; // Cancel colour\n\t\t}\n\t}\n\treturn \"\";\n};\n\nexports.terminalColourLookup = {\n\t\"black\": \"0;30\",\n\t\"red\": \"0;31\",\n\t\"green\": \"0;32\",\n\t\"brown/orange\": \"0;33\",\n\t\"blue\": \"0;34\",\n\t\"purple\": \"0;35\",\n\t\"cyan\": \"0;36\",\n\t\"light gray\": \"0;37\"\n};\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\texports.log(text,\"brown/orange\");\n};\n\n/*\nReturn the integer represented by the str (string).\nReturn the dflt (default) parameter if str is not a base-10 number.\n*/\nexports.getInt = function(str,deflt) {\n\tvar i = parseInt(str,10);\n\treturn isNaN(i) ? deflt : i;\n}\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nCheck if an array is equal by value and by reference.\n*/\nexports.isArrayEqual = function(array1,array2) {\n\tif(array1 === array2) {\n\t\treturn true;\n\t}\n\tarray1 = array1 || [];\n\tarray2 = array2 || [];\n\tif(array1.length !== array2.length) {\n\t\treturn false;\n\t}\n\treturn array1.every(function(value,index) {\n\t\treturn value === array2[index];\n\t});\n};\n\n/*\nPush entries onto an array, removing them first if they already exist in the array\n\tarray: array to modify (assumed to be free of duplicates)\n\tvalue: a single value to push or an array of values to push\n*/\nexports.pushTop = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\t// Remove any array entries that are duplicated in the new values\n\t\tif(value.length !== 0) {\n\t\t\tif(array.length !== 0) {\n\t\t\t\tif(value.length < array.length) {\n\t\t\t\t\tfor(t=0; t<value.length; t++) {\n\t\t\t\t\t\tp = array.indexOf(value[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(p,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor(t=array.length-1; t>=0; t--) {\n\t\t\t\t\t\tp = value.indexOf(array[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(t,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Push the values on top of the main array\n\t\t\tarray.push.apply(array,value);\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t\tarray.push(value);\n\t}\n\treturn array;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.getYearForWeekNo(date);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn date.getFullYear();\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0XXX/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMilliseconds());\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^XXX/, function() {\n\t\t\t\treturn date.getMilliseconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\t// If the user wants everything in UTC, shift the datestamp\n\t// Optimize for format string that essentially means\n\t// 'return raw UTC (tiddlywiki style) date string.'\n\tif(t.indexOf(\"[UTC]\") == 0 ) {\n\t\tif(t == \"[UTC]YYYY0MM0DD0hh0mm0ssXXX\")\n\t\t\treturn $tw.utils.stringifyDate(new Date());\n\t\tvar offset = date.getTimezoneOffset() ; // in minutes\n\t\tdate = new Date(date.getTime()+offset*60*1000) ;\n\t\tt = t.substr(5) ;\n\t}\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call();\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\", duration: 365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\", duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\", duration: 24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\", duration: 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration: 60 * 1000},\n\t\t{name: \"Seconds\", duration: 1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&\", < to \"<\", > to \">\", \" to \""\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&\").replace(/</mg,\"<\").replace(/>/mg,\">\").replace(/\\\"/mg,\""\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2); // Strip the & and the ;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\treturn converter(parseInt(e.substr(2),16));\n\t\t} else {\n\t\t\treturn converter(parseInt(e.substr(1),10));\n\t\t}\n\t} else {\n\t\tvar c = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/'/g, \"\\\\'\") // single quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g, exports.escape); // non-ASCII characters\n};\n\n// Turns a string into a legal JSON string\n// Derived from peg.js, thanks to David Majda\nexports.jsonStringify = function(s) {\n\t// See http://www.json.org/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/\\x08/g, '\\\\b') // backspace\n\t\t.replace(/\\x0c/g, '\\\\f') // formfeed\n\t\t.replace(/\\t/g, '\\\\t') // tab\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g,function(s) {\n\t\t\treturn '\\\\u' + $tw.utils.pad(s.charCodeAt(0).toString(16).toUpperCase(),4);\n\t\t}); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10);\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\tif($tw.browser) {\n\t\t// TODO\n\t\tthrow \"$tw.utils.base64Decode() doesn't work in the browser\";\n\t} else {\n\t\treturn (new Buffer(string64,\"base64\")).toString();\n\t}\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\n\t\tm = r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tparts.push(\"data:\");\n\tparts.push(type);\n\tparts.push(isBase64 ? \";base64\" : \"\");\n\tparts.push(\",\");\n\tparts.push(isBase64 ? text : encodeURIComponent(text));\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/widgets/action-createtiddler.js": {
"title": "$:/core/modules/widgets/action-createtiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.generateNewTitle(this.actionBaseTitle),\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletefield.js": {
"title": "$:/core/modules/widgets/action-deletefield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletetiddler.js": {
"title": "$:/core/modules/widgets/action-deletetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-listops.js": {
"title": "$:/core/modules/widgets/action-listops.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-navigate.js": {
"title": "$:/core/modules/widgets/action-navigate.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-sendmessage.js": {
"title": "$:/core/modules/widgets/action-sendmessage.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-setfield.js": {
"title": "$:/core/modules/widgets/action-setfield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\") || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/browse.js": {
"title": "$:/core/modules/widgets/browse.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\t// Nw.js supports \"webkitdirectory\" and \"nwdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\tif(this.nwdirectory) {\n\t\tdomNode.setAttribute(\"nwdirectory\",this.nwdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,{\n\t\t\t\tcallback: function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t},\n\t\t\t\tdeserializer: self.deserializer\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.deserializer = this.getAttribute(\"deserializer\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n\tthis.nwdirectory = this.getAttribute(\"nwdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/button.js": {
"title": "$:/core/modules/widgets/button.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = \"button\";\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = this.popup && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif(this.set && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(self,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n return this.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\t$tw.popup.triggerPopup({\n\t\tdomNode: this.domNodes[0],\n\t\ttitle: this.popup,\n\t\twiki: this.wiki\n\t});\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes[\"class\"] || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup])) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/checkbox.js": {
"title": "$:/core/modules/widgets/checkbox.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n\tif(this.checkboxUncheckActions && !checked) {\n\t\tthis.invokeActionString(this.checkboxUncheckActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxUncheckActions = this.getAttribute(\"uncheckactions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/codeblock.js": {
"title": "$:/core/modules/widgets/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/count.js": {
"title": "$:/core/modules/widgets/count.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = undefined;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/diff-text.js": {
"title": "$:/core/modules/widgets/diff-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/diff-text.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display a diff between two texts\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\tdmp = require(\"$:/core/modules/utils/diff-match-patch/diff_match_patch.js\");\n\nvar DiffTextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDiffTextWidget.prototype = new Widget();\n\nDiffTextWidget.prototype.invisibleCharacters = {\n\t\"\\n\": \"↩︎\\n\",\n\t\"\\r\": \"⇠\",\n\t\"\\t\": \"⇥\\t\"\n};\n\n/*\nRender this widget into the DOM\n*/\nDiffTextWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create the diff\n\tvar dmpObject = new dmp.diff_match_patch(),\n\t\tdiffs = dmpObject.diff_main(this.getAttribute(\"source\"),this.getAttribute(\"dest\"));\n\t// Apply required cleanup\n\tswitch(this.getAttribute(\"cleanup\",\"semantic\")) {\n\t\tcase \"none\":\n\t\t\t// No cleanup\n\t\t\tbreak;\n\t\tcase \"efficiency\":\n\t\t\tdmpObject.diff_cleanupEfficiency(diffs);\n\t\t\tbreak;\n\t\tdefault: // case \"semantic\"\n\t\t\tdmpObject.diff_cleanupSemantic(diffs);\n\t\t\tbreak;\n\t}\n\t// Create the elements\n\tvar domContainer = this.document.createElement(\"div\"), \n\t\tdomDiff = this.createDiffDom(diffs);\n\tparent.insertBefore(domContainer,nextSibling);\n\t// Set variables\n\tthis.setVariable(\"diff-count\",diffs.reduce(function(acc,diff) {\n\t\tif(diff[0] !== dmp.DIFF_EQUAL) {\n\t\t\tacc++;\n\t\t}\n\t\treturn acc;\n\t},0).toString());\n\t// Render child widgets\n\tthis.renderChildren(domContainer,null);\n\t// Render the diff\n\tdomContainer.appendChild(domDiff);\n\t// Save our container\n\tthis.domNodes.push(domContainer);\n};\n\n/*\nCreate DOM elements representing a list of diffs\n*/\nDiffTextWidget.prototype.createDiffDom = function(diffs) {\n\tvar self = this;\n\t// Create the element and assign the attributes\n\tvar domPre = this.document.createElement(\"pre\"),\n\t\tdomCode = this.document.createElement(\"code\");\n\t$tw.utils.each(diffs,function(diff) {\n\t\tvar tag = diff[0] === dmp.DIFF_INSERT ? \"ins\" : (diff[0] === dmp.DIFF_DELETE ? \"del\" : \"span\"),\n\t\t\tclassName = diff[0] === dmp.DIFF_INSERT ? \"tc-diff-insert\" : (diff[0] === dmp.DIFF_DELETE ? \"tc-diff-delete\" : \"tc-diff-equal\"),\n\t\t\tdom = self.document.createElement(tag),\n\t\t\ttext = diff[1],\n\t\t\tcurrPos = 0,\n\t\t\tre = /([\\x00-\\x1F])/mg,\n\t\t\tmatch = re.exec(text),\n\t\t\tspan,\n\t\t\tprintable;\n\t\tdom.className = className;\n\t\twhile(match) {\n\t\t\tif(currPos < match.index) {\n\t\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos,match.index)));\n\t\t\t}\n\t\t\tspan = self.document.createElement(\"span\");\n\t\t\tspan.className = \"tc-diff-invisible\";\n\t\t\tprintable = self.invisibleCharacters[match[0]] || (\"[0x\" + match[0].charCodeAt(0).toString(16) + \"]\");\n\t\t\tspan.appendChild(self.document.createTextNode(printable));\n\t\t\tdom.appendChild(span);\n\t\t\tcurrPos = match.index + match[0].length;\n\t\t\tmatch = re.exec(text);\n\t\t}\n\t\tif(currPos < text.length) {\n\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos)));\n\t\t}\n\t\tdomCode.appendChild(dom);\n\t});\n\tdomPre.appendChild(domCode);\n\treturn domPre;\n};\n\n/*\nCompute the internal state of the widget\n*/\nDiffTextWidget.prototype.execute = function() {\n\t// Make child widgets\n\tvar parseTreeNodes;\n\tif(this.parseTreeNode && this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: \"$:/language/Diffs/CountMessage\"}\n\t\t\t}\n\t\t}];\n\t}\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDiffTextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.dest || changedAttributes.cleanup) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports[\"diff-text\"] = DiffTextWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/draggable.js": {
"title": "$:/core/modules/widgets/draggable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\tstartActions: self.startActions,\n\t\tendActions: self.endActions,\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\tthis.startActions = this.getAttribute(\"startactions\");\n\tthis.endActions = this.getAttribute(\"endactions\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedTiddlers.tag || changedTiddlers[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/droppable.js": {
"title": "$:/core/modules/widgets/droppable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tvar domNode = this.document.createElement(tag),\n\t\tclasses = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tdomNode.className = classes.join(\" \");\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t]);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tvar modifierKey = event.ctrlKey && ! event.shiftKey ? \"ctrl\" : event.shiftKey && !event.ctrlKey ? \"shift\" : \n\t\t\t\tevent.ctrlKey && event.shiftKey ? \"ctrl-shift\" : \"normal\" ;\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableClass = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/dropzone.js": {
"title": "$:/core/modules/widgets/dropzone.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = \"tc-dropzone\";\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"}\n\t]);\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,{\n\t\t\tcallback: readFileCallback,\n\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),readFileCallback);\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),{\n\t\t\t\t\tcallback: readFileCallback,\n\t\t\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\tthis.dropzoneDeserializer = this.getAttribute(\"deserializer\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-binary.js": {
"title": "$:/core/modules/widgets/edit-binary.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Construct the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"transclude\",\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t}\n\t}]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-bitmap.js": {
"title": "$:/core/modules/widgets/edit-bitmap.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370;\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\n/*\n** Rotate the canvas left by 90 degrees\n*/\nEditBitmapWidget.prototype.rotateCanvasLeft = function() {\n\t// Get the current size of the image\n\tvar origWidth = this.currCanvas.width,\n\t\torigHeight = this.currCanvas.height;\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\"),\n\t\tnewWidth = origHeight,\n\t\tnewHeight = origWidth;\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.save();\n\tctx.translate(newWidth / 2,newHeight / 2);\n\tctx.rotate(-Math.PI / 2);\n\tctx.drawImage(this.currCanvas,-origWidth / 2,-origHeight / 2);\n\tctx.restore();\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\tif(tiddler) {\n\t\t// data URIs look like \"data:<type>;base64,<text>\"\n\t\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\t\tposColon = dataURL.indexOf(\":\"),\n\t\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\t\tposComma = dataURL.indexOf(\",\"),\n\t\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\t\ttext = dataURL.substring(posComma+1);\n\t\tvar update = {type: type, text: text};\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n\t}\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-shortcut.js": {
"title": "$:/core/modules/widgets/edit-shortcut.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-text.js": {
"title": "$:/core/modules/widgets/edit-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit.js": {
"title": "$:/core/modules/widgets/edit.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: this.editTitle},\n\t\t\tfield: {type: \"string\", value: this.editField},\n\t\t\tindex: {type: \"string\", value: this.editIndex},\n\t\t\t\"class\": {type: \"string\", value: this.editClass},\n\t\t\t\"placeholder\": {type: \"string\", value: this.editPlaceholder}\n\t\t},\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/element.js": {
"title": "$:/core/modules/widgets/element.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Neuter blacklisted elements\n\tvar tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"safe-\" + tag;\n\t}\n\tvar domNode = this.document.createElementNS(this.namespace,tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nElementWidget.prototype.execute = function() {\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.parseTreeNode.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\t// Update our attributes\n\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/encrypt.js": {
"title": "$:/core/modules/widgets/encrypt.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/entity.js": {
"title": "$:/core/modules/widgets/entity.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fieldmangler.js": {
"title": "$:/core/modules/widgets/fieldmangler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler(new $tw.Tiddler({title: this.mangleTitle, tags: tag},modification));\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fields.js": {
"title": "$:/core/modules/widgets/fields.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\t// Get the exclusion list\n\tvar exclude;\n\tif(this.exclude) {\n\t\texclude = this.exclude.split(\" \");\n\t} else {\n\t\texclude = [\"text\"]; \n\t}\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tfor(var fieldName in tiddler.fields) {\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tfields.push(fieldName);\n\t\t\t}\n\t\t}\n\t\tfields.sort();\n\t\tfor(var f=0; f<fields.length; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tvar row = this.template,\n\t\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\t\tif(reMatch) {\n\t\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\t\ttext.push(row);\n\t\t\t}\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude || changedAttributes.stripTitlePrefix || changedTiddlers[this.tiddlerTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/image.js": {
"title": "$:/core/modules/widgets/image.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/importvariables.js": {
"title": "$:/core/modules/widgets/importvariables.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar self = this;\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\tvar widgetStackStart,widgetStackEnd;\n\tfunction addWidgetNode(widgetNode) {\n\t\tif(widgetNode) {\n\t\t\tif(!widgetStackStart && !widgetStackEnd) {\n\t\t\t\twidgetStackStart = widgetNode;\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t} else {\n\t\t\t\twidgetStackEnd.children = [widgetNode];\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t}\n\t\t}\n\t}\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = self.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\taddWidgetNode({\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params\n\t\t\t\t});\n\t\t\t\tparseTreeNode = parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\t// Add our own children to the end of the pile\n\tvar parseTreeNodes;\n\tif(widgetStackStart && widgetStackEnd) {\n\t\tparseTreeNodes = [widgetStackStart];\n\t\twidgetStackEnd.children = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/keyboard.js": {
"title": "$:/core/modules/widgets/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tself.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.key = this.getAttribute(\"key\");\n\tthis.tag = this.getAttribute(\"tag\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/link.js": {
"title": "$:/core/modules/widgets/link.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar MISSING_LINK_CONFIG_TITLE = \"$:/config/MissingLinks\";\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.overrideClasses === undefined) {\n\t\tclasses.push(\"tc-tiddlylink\");\n\t\tif(this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t\t}\n\t\tif(this.isMissing && !this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t\t} else {\n\t\t\tif(!this.isMissing) {\n\t\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t\t}\n\t\t}\n\t\tif(this.linkClasses) {\n\t\t\tclasses.push(this.linkClasses);\t\t\t\n\t\t}\n\t} else if(this.overrideClasses !== \"\") {\n\t\tclasses.push(this.overrideClasses)\n\t}\n\tif(classes.length > 0) {\n\t\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t}\n\t// Set an href\n\tvar wikilinkTransformFilter = this.getVariable(\"tv-filter-export-link\"),\n\t\twikiLinkText;\n\tif(wikilinkTransformFilter) {\n\t\t// Use the filter to construct the href\n\t\twikiLinkText = this.wiki.filterTiddlers(wikilinkTransformFilter,this,function(iterator) {\n\t\t\titerator(self.wiki.getTiddler(self.to),self.to)\n\t\t})[0];\n\t} else {\n\t\t// Expand the tv-wikilink-template variable to construct the href\n\t\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\";\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\t}\n\t// Override with the value of tv-get-export-link if defined\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tmetaKey: event.metaKey,\n\t\tctrlKey: event.ctrlKey,\n\t\taltKey: event.altKey,\n\t\tshiftKey: event.shiftKey\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.overrideClasses = this.getAttribute(\"overrideClass\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = ($tw.wiki.getTiddlerText(MISSING_LINK_CONFIG_TITLE,\"yes\") === \"no\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip || changedTiddlers[MISSING_LINK_CONFIG_TITLE]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/linkcatcher.js": {
"title": "$:/core/modules/widgets/linkcatcher.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n\t// When executing actions we avoid trapping navigate events, so that we don't trigger ourselves recursively\n\tthis.executingActions = false;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(!this.executingActions) {\n\t\t// Execute the actions\n\t\tif(this.catchTo) {\n\t\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t\t}\n\t\tif(this.catchMessage && this.parentWidget) {\n\t\t\tthis.parentWidget.dispatchEvent({\n\t\t\t\ttype: this.catchMessage,\n\t\t\t\tparam: event.navigateTo,\n\t\t\t\tnavigateTo: event.navigateTo\n\t\t\t});\n\t\t}\n\t\tif(this.catchSet) {\n\t\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t\t}\n\t\tif(this.catchActions) {\n\t\t\tthis.executingActions = true;\n\t\t\tthis.invokeActionString(this.catchActions,this,event,{navigateTo: event.navigateTo});\n\t\t\tthis.executingActions = false;\n\t\t}\n\t} else {\n\t\t// This is a navigate event generated by the actions of this linkcatcher, so we don't trap it again, but just pass it to the parent\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: \"tm-navigate\",\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/list.js": {
"title": "$:/core/modules/widgets/list.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar emptyMessage = this.getAttribute(\"emptyMessage\",\"\"),\n\t\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/macrocall.js": {
"title": "$:/core/modules/widgets/macrocall.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar macroName = this.parseTreeNode.name || this.getAttribute(\"$name\"),\n\t\tvariableInfo = this.getVariableInfo(macroName,{params: params}),\n\t\ttext = variableInfo.text,\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\tvar parser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\tparseTreeNodes = parser ? parser.tree : [];\n\t\t// Wrap the parse tree in a vars widget assigning the parameters to variables named \"__paramname__\"\n\t\tvar attributes = {};\n\t\t$tw.utils.each(variableInfo.params,function(param) {\n\t\t\tvar name = \"__\" + param.name + \"__\";\n\t\t\tattributes[name] = {\n\t\t\t\tname: name,\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: param.value\n\t\t\t};\n\t\t});\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"vars\",\n\t\t\tattributes: attributes,\n\t\t\tchildren: parseTreeNodes\n\t\t}];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/navigator.js": {
"title": "$:/core/modules/widgets/navigator.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\tthis.setVariable(\"tv-story-list\",this.storyTitle);\n\tthis.setVariable(\"tv-history-list\",this.historyTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList}\n\t));\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tvar p = storyList.indexOf(title);\n\twhile(p !== -1) {\n\t\tstoryList.splice(p,1);\n\t\tp = storyList.indexOf(title);\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tvar pos = storyList.indexOf(oldTitle);\n\tif(pos !== -1) {\n\t\tstoryList[pos] = newTitle;\n\t\tdo {\n\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\tif(pos !== -1) {\n\t\t\t\tstoryList.splice(pos,1);\n\t\t\t}\n\t\t} while(pos !== -1);\n\t} else {\n\t\tstoryList.splice(0,0,newTitle);\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tvar storyList = this.getStoryList();\n\t// Quit if we cannot get hold of the story list\n\tif(!storyList) {\n\t\treturn;\n\t}\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(title);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(fromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(this.getAttribute(\"openLinkFromInsideRiver\",\"below\")) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,title);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.wiki.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar editTiddler = $tw.hooks.invokeHook(\"th-editing-tiddler\",event);\n\tif(!editTiddler) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler(\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle;\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\";\n\t\tc++;\n\t} while(this.wiki.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\nconsole.log(\"Relinking '\" + draftOf + \"' to '\" + draftTitle + \"'\");\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-cancelling-tiddler\", event);\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-new-tiddler\", event);\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Make a copy of the additional fields excluding any blank ones\n\tvar filteredAdditionalFields = $tw.utils.extend({},additionalFields);\n\tObject.keys(filteredAdditionalFields).forEach(function(fieldName) {\n\t\tif(filteredAdditionalFields[fieldName] === \"\") {\n\t\t\tdelete filteredAdditionalFields[fieldName];\n\t\t}\n\t});\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\tadditionalFields,\n\t\texistingTiddler,\n\t\tfilteredAdditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTiddler = this.wiki.getTiddler(IMPORT_TITLE),\n\t\timportData = this.wiki.getTiddlerData(IMPORT_TITLE,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: IMPORT_TITLE,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\ttiddlerFields.title = $tw.utils.trim(tiddlerFields.title);\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tif(this.getVariable(\"tv-auto-open-on-import\") !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList.indexOf(IMPORT_TITLE) === -1) {\n\t\t\tstoryList.unshift(IMPORT_TITLE);\n\t\t}\n\t\t// And to history\n\t\thistory.push(IMPORT_TITLE);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n//\nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddlerFields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-renaming-tiddler\", event);\n\tvar paramObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\t$tw.wiki.renameTiddler(from,to);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/password.js": {
"title": "$:/core/modules/widgets/password.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/radio.js": {
"title": "$:/core/modules/widgets/radio.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tvar isChecked = this.getValue() === this.radioValue;\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",\n \t\t\"tc-radio \" + this.radioClass + (isChecked ? \" tc-radio-selected\" : \"\")\n \t);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(isChecked) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.radioTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/range.js": {
"title": "$:/core/modules/widgets/range.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/range.js\ntype: application/javascript\nmodule-type: widget\n\nRange widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RangeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRangeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRangeWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"range\");\n\tthis.inputDomNode.setAttribute(\"class\",this.elementClass);\n\tif(this.minValue){\n\t\tthis.inputDomNode.setAttribute(\"min\", this.minValue);\n\t}\n\tif(this.maxValue){\n\t\tthis.inputDomNode.setAttribute(\"max\", this.maxValue);\n\t}\n\tif(this.increment){\n\t\tthis.inputDomNode.setAttribute(\"step\", this.increment);\n\t}\n\tthis.inputDomNode.value = this.getValue();\n\n\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.inputDomNode,nextSibling);\n\tthis.domNodes.push(this.inputDomNode);\n};\n\nRangeWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle),\n\t\tvalue = this.defaultValue;\n\tif(tiddler) {\n\t\tif($tw.utils.hop(tiddler.fields,this.tiddlerField)) {\n\t\t\tvalue = tiddler.fields[this.tiddlerField] || \"\";\n\t\t} else {\n\t\t\tvalue = this.defaultValue || \"\";\n\t\t}\n\t}\n\treturn value;\n};\n\nRangeWidget.prototype.handleChangeEvent = function(event) {\n\tthis.wiki.setText(this.tiddlerTitle ,this.tiddlerField, null,this.inputDomNode.value);\n};\n\n/*\nCompute the internal state of the widget\n*/\nRangeWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.tiddlerField = this.getAttribute(\"field\");\n\tthis.minValue = this.getAttribute(\"min\");\n\tthis.maxValue = this.getAttribute(\"max\");\n\tthis.increment = this.getAttribute(\"increment\");\n\tthis.defaultValue = this.getAttribute(\"default\");\n\tthis.elementClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRangeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes['min'] || changedAttributes['max'] || changedAttributes['increment'] || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.tiddlerTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.range = RangeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/raw.js": {
"title": "$:/core/modules/widgets/raw.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/reveal.js": {
"title": "$:/core/modules/widgets/reveal.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tvar classes = this[\"class\"].split(\" \") || [];\n\tclasses.push(\"tc-reveal\");\n\tdomNode.className = classes.join(\" \");\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tdomNode.style.left = (this.popup.left - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTitle = this.state;\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state = this.stateTitle ? this.wiki.getTextReference(this.stateTitle,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) == 0);\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) == 0);\n\t\t\tbreak;\n\t\tcase \"lt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t\tcase \"gt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"lteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"gteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.compareStateText = function(state) {\n\treturn state.localeCompare(this.text,undefined,{numeric: true,sensitivity: \"case\"});\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes[\"default\"] || changedAttributes.animate) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false,\n\t\t\tcurrentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\trefreshed = true;\n\t\t\t}\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\tvar self = this;\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\t//make sure that the state hasn't changed during the close animation\n\t\t\tself.readState()\n\t\t\tif(!self.isOpen) {\n\t\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t\t\t}\n \t}});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/scrollable.js": {
"title": "$:/core/modules/widgets/scrollable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tthis.scrollIntoView(event.target);\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/select.js": {
"title": "$:/core/modules/widgets/select.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex,value);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tif(values.indexOf(select.children[i].value) != -1) {\n\t\t\t\tselect.children[i].selected = true;\n\t\t\t}\n\t\t}\n\t\t\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/set.js": {
"title": "$:/core/modules/widgets/set.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setTiddler = this.getAttribute(\"tiddler\");\n\tthis.setSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.setField = this.getAttribute(\"field\");\n\tthis.setIndex = this.getAttribute(\"index\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setTiddler) {\n\t\tvar tiddler;\n\t\tif(this.setSubTiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler);\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.setTiddler);\t\t\t\n\t\t}\n\t\tif(!tiddler) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t} else if(this.setField) {\n\t\t\tvalue = tiddler.getFieldString(this.setField) || this.setEmptyValue;\n\t\t} else if(this.setIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.setTiddler,this.setIndex,this.setEmptyValue);\n\t\t} else {\n\t\t\tvalue = tiddler.fields.text || this.setEmptyValue ;\n\t\t}\n\t} else if(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(this.setValue == null) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value || \"\";\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select || changedAttributes.tiddler || (this.setTiddler && changedTiddlers[this.setTiddler]) || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes.emptyValue ||\n\t (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/text.js": {
"title": "$:/core/modules/widgets/text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/tiddler.js": {
"title": "$:/core/modules/widgets/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/transclude.js": {
"title": "$:/core/modules/widgets/transclude.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tthis.setVariable(\"transclusion\",recursionMarker);\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/vars.js": {
"title": "$:/core/modules/widgets/vars.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/view.js": {
"title": "$:/core/modules/widgets/view.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tthis.viewMode = this.getAttribute(\"mode\",\"block\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function(mode) {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/widget.js": {
"title": "$:/core/modules/widgets/widget.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tif(arguments.length > 0) {\n\t\tthis.initialise(parseTreeNode,options);\n\t}\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\n*/\nWidget.prototype.setVariable = function(name,value,params) {\n\tthis.variables[name] = {value: value, params: params};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n\nReturns an object with the following fields:\n\nparams: array of {name:,value:} of parameters passed to wikitext variables\ntext: text of variable, with parameters properly substituted\n*/\nWidget.prototype.getVariableInfo = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\tvalue = variable.value,\n\t\t\tparams = this.resolveVariableParameters(variable.params,actualParams);\n\t\t// Substitute any parameters specified in the definition\n\t\t$tw.utils.each(params,function(param) {\n\t\t\tvalue = $tw.utils.replaceString(value,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(param.name) + \"\\\\$\",\"mg\"),param.value);\n\t\t});\n\t\tvalue = this.substituteVariableReferences(value);\n\t\treturn {\n\t\t\ttext: value,\n\t\t\tparams: params\n\t\t};\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn {\n\t\ttext: this.evaluateMacroModule(name,actualParams,options.defaultValue)\n\t};\n};\n\n/*\nSimplified version of getVariableInfo() that just returns the text\n*/\nWidget.prototype.getVariable = function(name,options) {\n\treturn this.getVariableInfo(name,options).text;\n};\n\nWidget.prototype.resolveVariableParameters = function(formalParams,actualParams) {\n\tformalParams = formalParams || [];\n\tactualParams = actualParams || [];\n\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\tparamInfo, paramValue,\n\t\tresults = [];\n\t// Step through each of the parameters in the macro definition\n\tfor(var p=0; p<formalParams.length; p++) {\n\t\t// Check if we've got a macro call parameter with the same name\n\t\tparamInfo = formalParams[p];\n\t\tparamValue = undefined;\n\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t}\n\t\t}\n\t\t// If not, use the next available anonymous macro call parameter\n\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\tnextAnonParameter++;\n\t\t}\n\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t}\n\t\t// If we've still not got a value, use the default, if any\n\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t// Store the parameter name and value\n\t\tresults.push({name: paramInfo.name, value: paramValue});\n\t}\n\treturn results;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.render(parent,nextSibling);\n\t});\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar self = this,\n\t\trefreshed = false;\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\trefreshed = childWidget.refresh(changedTiddlers) || refreshed;\n\t});\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/wikify.js": {
"title": "$:/core/modules/widgets/wikify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/wiki-bulkops.js": {
"title": "$:/core/modules/wiki-bulkops.js",
"text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = (tiddler.fields.tags || []).slice(0),\n\t\t\t\t\tlist = (tiddler.fields.list || []).slice(0),\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/wiki.js": {
"title": "$:/core/modules/wiki.js",
"text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type] || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric,isAlphaNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x : x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if(isAlphaNumeric) {\n\t\t\treturn isDescending ? b.localeCompare(a,undefined,{numeric: true,sensitivity: \"base\"}) : a.localeCompare(b,undefined,{numeric: true,sensitivity: \"base\"});\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\t// Count up the links\n\t\tvar links = [],\n\t\t\tcheckParseTree = function(parseTree) {\n\t\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\tif(parser) {\n\t\t\tcheckParseTree(parser.tree);\n\t\t}\n\t\treturn links;\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinks = [];\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\tbacklinks.push(title);\n\t\t}\n\t});\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\tvar self = this;\n\treturn this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\tvar tagmap = self.getTagMap();\n\t\treturn self.sortByList(tagmap[tag],tag);\n\t});\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tvar currPos = titles.indexOf(title),\n\t\t\t\tnewPos = -1,\n\t\t\t\ttiddler = this.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(afterTitle === \"\") {\n\t\t\t\t\tnewPos = titles.length;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(newPos === -1) {\n\t\t\t\t\tnewPos = currPos;\n\t\t\t\t}\n\t\t\t\tif(newPos !== currPos) {\n\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t}\n\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type || \"text/vnd.tiddlywiki\",tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title}},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn $tw.wiki.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tliteral: If true, searches for literal string, rather than separate search terms\n\tfield: If specified, restricts the search to the specified field\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tmatch;\n\t\tfor(var t=0; t<searchTermsRegExps.length; t++) {\n\t\t\tmatch = false;\n\t\t\tif(options.field) {\n\t\t\t\tmatch = searchTermsRegExps[t].test(tiddler.getFieldString(options.field));\n\t\t\t} else {\n\t\t\t\t// Search title, tags and body\n\t\t\t\tif(contentTypeInfo.encoding === \"utf8\") {\n\t\t\t\t\tmatch = match || searchTermsRegExps[t].test(tiddler.fields.text);\n\t\t\t\t}\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.join(\"\\0\") : \"\";\n\t\t\t\tmatch = match || searchTermsRegExps[t].test(tags) || searchTermsRegExps[t].test(tiddler.fields.title);\n\t\t\t}\n\t\t\tif(!match) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(tiddler.fields.text !== undefined) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text;\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\tvar result = [],\n\t\toutstanding = files.length,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t};\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],Object.assign({},options,{callback: readFileCallback}));\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Give the hook a chance to process the drag\n\tif($tw.hooks.invokeHook(\"th-importing-file\",{\n\t\tfile: file,\n\t\ttype: type,\n\t\tisBinary: isBinary,\n\t\tcallback: callback\n\t}) !== true) {\n\t\tthis.readFileContent(file,type,isBinary,options.deserializer,callback);\n\t}\n};\n\n/*\nLower level utility to read the content of a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFileContent = function(file,type,isBinary,deserializer,callback) {\n\tvar self = this;\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\", type: type};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields,{deserializer: deserializer}));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n})();\n\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/palettes/Blanca": {
"title": "$:/palettes/Blanca",
"name": "Blanca",
"description": "A clean white palette to let you focus",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Blue": {
"title": "$:/palettes/Blue",
"name": "Blue",
"description": "A blue theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Muted": {
"title": "$:/palettes/Muted",
"name": "Muted",
"description": "Bright tiddlers on a muted background",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastLight": {
"title": "$:/palettes/ContrastLight",
"name": "Contrast (Light)",
"description": "High contrast and unambiguous (light version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastDark": {
"title": "$:/palettes/ContrastDark",
"name": "Contrast (Dark)",
"description": "High contrast and unambiguous (dark version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/DarkPhotos": {
"title": "$:/palettes/DarkPhotos",
"created": "20150402111612188",
"description": "Good with dark photo backgrounds",
"modified": "20150402112344080",
"name": "DarkPhotos",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Rocker": {
"title": "$:/palettes/Rocker",
"name": "Rocker",
"description": "A dark theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarFlare": {
"title": "$:/palettes/SolarFlare",
"name": "Solar Flare",
"description": "Warm, relaxing earth colours",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n download-foreground: <<colour background>>\n dragger-foreground: <<colour background>>\n dropdown-background: <<colour background>>\n modal-background: <<colour background>>\n sidebar-foreground-shadow: <<colour background>>\n tiddler-background: <<colour background>>\n tiddler-border: <<colour background>>\n tiddler-link-background: <<colour background>>\n tab-background-selected: <<colour background>>\n dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n dragger-background: <<colour foreground>>\n tab-foreground: <<colour foreground>>\n tab-foreground-selected: <<colour tab-foreground>>\n sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n sidebar-tab-foreground: <<colour tab-foreground>>\n sidebar-button-foreground: <<colour foreground>>\n sidebar-controls-foreground: <<colour foreground>>\n sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n alert-muted-foreground: <<colour base01>>\n: base00\n code-foreground: <<colour base00>>\n message-foreground: <<colour base00>>\n tag-foreground: <<colour base00>>\n: base0\n sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n muted-foreground: <<colour base1>>\n blockquote-bar: <<colour muted-foreground>>\n dropdown-border: <<colour muted-foreground>>\n sidebar-muted-foreground: <<colour muted-foreground>>\n tiddler-title-foreground: <<colour muted-foreground>>\n site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n modal-footer-background: <<colour base2>>\n page-background: <<colour base2>>\n modal-backdrop: <<colour page-background>>\n notification-background: <<colour page-background>>\n code-background: <<colour page-background>>\n code-border: <<colour code-background>>\n pre-background: <<colour page-background>>\n pre-border: <<colour pre-background>>\n sidebar-tab-background-selected: <<colour page-background>>\n table-header-background: <<colour base2>>\n tag-background: <<colour base2>>\n tiddler-editor-background: <<colour base2>>\n tiddler-info-background: <<colour base2>>\n tiddler-info-tab-background: <<colour base2>>\n tab-background: <<colour base2>>\n dropdown-tab-background: <<colour tab-background>>\n: base3\n alert-background: <<colour base3>>\n message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n alert-highlight: <<colour magenta>>\n: violet\n external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n primary: <<colour blue-muted>>\n download-background: <<colour primary>>\n tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n modal-footer-border: <<colour tab-border>>\n modal-header-border: <<colour tab-border>>\n notification-border: <<colour tab-border>>\n sidebar-tab-border: <<colour tab-border>>\n tab-border-selected: <<colour tab-border>>\n sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Vanilla": {
"title": "$:/palettes/Vanilla",
"name": "Vanilla",
"description": "Pale and unobtrusive",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/core/readme": {
"title": "$:/core/readme",
"text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
},
"$:/library/sjcl.js/license": {
"title": "$:/library/sjcl.js/license",
"type": "text/plain",
"text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
},
"$:/core/templates/MOTW.html": {
"title": "$:/core/templates/MOTW.html",
"text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)https://tiddlywiki.com --> "
},
"$:/core/templates/alltiddlers.template.html": {
"title": "$:/core/templates/alltiddlers.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
},
"$:/core/templates/canonical-uri-external-image": {
"title": "$:/core/templates/canonical-uri-external-image",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-raw": {
"title": "$:/core/templates/canonical-uri-external-raw",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external raw files that are stored in the same directory\n\n-->\n<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-text": {
"title": "$:/core/templates/canonical-uri-external-text",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
},
"$:/core/templates/css-tiddler": {
"title": "$:/core/templates/css-tiddler",
"text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
},
"$:/core/templates/exporters/CsvFile": {
"title": "$:/core/templates/exporters/CsvFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/CsvFile}}",
"extension": ".csv",
"text": "\\define renderContent()\n<$text text=<<csvtiddlers filter:\"\"\"$(exportFilter)$\"\"\" format:\"quoted-comma-sep\">>/>\n\\end\n<<renderContent>>\n"
},
"$:/core/templates/exporters/JsonFile": {
"title": "$:/core/templates/exporters/JsonFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/JsonFile}}",
"extension": ".json",
"text": "\\define renderContent()\n<$text text=<<jsontiddlers filter:\"\"\"$(exportFilter)$\"\"\">>/>\n\\end\n<<renderContent>>\n"
},
"$:/core/templates/exporters/StaticRiver": {
"title": "$:/core/templates/exporters/StaticRiver",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/StaticRiver}}",
"extension": ".html",
"text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"
},
"$:/core/templates/exporters/StaticRiver/Content": {
"title": "$:/core/templates/exporters/StaticRiver/Content",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<<renderContent>>\n</$importvariables>\n"
},
"$:/core/templates/exporters/TidFile": {
"title": "$:/core/templates/exporters/TidFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/TidFile}}",
"extension": ".tid",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\"><<renderContent>></$importvariables>"
},
"$:/core/templates/html-div-tiddler": {
"title": "$:/core/templates/html-div-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
},
"$:/core/templates/html-tiddler": {
"title": "$:/core/templates/html-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
},
"$:/core/templates/javascript-tiddler": {
"title": "$:/core/templates/javascript-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
},
"$:/core/templates/json-tiddler": {
"title": "$:/core/templates/json-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
},
"$:/core/templates/module-tiddler": {
"title": "$:/core/templates/module-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"
},
"$:/core/templates/plain-text-tiddler": {
"title": "$:/core/templates/plain-text-tiddler",
"text": "<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/raw-static-tiddler": {
"title": "$:/core/templates/raw-static-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
},
"$:/core/save/all": {
"title": "$:/core/save/all",
"text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/empty": {
"title": "$:/core/save/empty",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-all": {
"title": "$:/core/save/lazy-all",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-images": {
"title": "$:/core/save/lazy-images",
"text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/templates/single.tiddler.window": {
"title": "$:/core/templates/single.tiddler.window",
"text": "<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"tempCurrentTiddler\" value=<<currentTiddler>>>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=<<tempCurrentTiddler>>>\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</$importvariables>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n"
},
"$:/core/templates/split-recipe": {
"title": "$:/core/templates/split-recipe",
"text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
},
"$:/core/templates/static-tiddler": {
"title": "$:/core/templates/static-tiddler",
"text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
},
"$:/core/templates/static.area": {
"title": "$:/core/templates/static.area",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n"
},
"$:/core/templates/static.content": {
"title": "$:/core/templates/static.content",
"text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
},
"$:/core/templates/static.template.css": {
"title": "$:/core/templates/static.template.css",
"text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
},
"$:/core/templates/static.template.html": {
"title": "$:/core/templates/static.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
},
"$:/core/templates/static.tiddler.html": {
"title": "$:/core/templates/static.tiddler.html",
"text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>\n</$importvariables>`\n</section>\n</body>\n</html>\n`"
},
"$:/core/templates/store.area.template.html": {
"title": "$:/core/templates/store.area.template.html",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
},
"$:/core/templates/tid-tiddler": {
"title": "$:/core/templates/tid-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/tiddler-metadata": {
"title": "$:/core/templates/tiddler-metadata",
"text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
},
"$:/core/templates/tiddlywiki5.html": {
"title": "$:/core/templates/tiddlywiki5.html",
"text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html>\n<head>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\">\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}\n</div>\n</body>\n</html>\n"
},
"$:/core/templates/version": {
"title": "$:/core/templates/version",
"text": "<<version>>"
},
"$:/core/templates/wikified-tiddler": {
"title": "$:/core/templates/wikified-tiddler",
"text": "<$transclude />"
},
"$:/core/ui/AboveStory/tw2-plugin-check": {
"title": "$:/core/ui/AboveStory/tw2-plugin-check",
"tags": "$:/tags/AboveStory",
"text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/AdvancedSearch/Filter": {
"title": "$:/core/ui/AdvancedSearch/Filter",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Filter/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}} template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Shadows": {
"title": "$:/core/ui/AdvancedSearch/Shadows",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Shadows/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Standard": {
"title": "$:/core/ui/AdvancedSearch/Standard",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Standard/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n</$list>\n</$set>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/System": {
"title": "$:/core/ui/AdvancedSearch/System",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/System/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/AdvancedSearch": {
"title": "$:/AdvancedSearch",
"icon": "$:/core/images/advanced-search-button",
"color": "#bbb",
"text": "<div class=\"tc-advanced-search\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\">>\n</div>\n"
},
"$:/core/ui/AlertTemplate": {
"title": "$:/core/ui/AlertTemplate",
"text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/delete-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=\"0hh:0mm:0ss DD MM YYYY\"/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
},
"$:/core/ui/BinaryWarning": {
"title": "$:/core/ui/BinaryWarning",
"text": "\\define lingo-base() $:/language/BinaryWarning/\n<div class=\"tc-binary-warning\">\n\n<<lingo Prompt>>\n\n</div>\n"
},
"$:/core/ui/Components/plugin-info": {
"title": "$:/core/ui/Components/plugin-info",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1>\n''<$view field=\"description\"><$view field=\"title\"/></$view>'' $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
},
"$:/core/ui/Components/tag-link": {
"title": "$:/core/ui/Components/tag-link",
"text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
},
"$:/core/ui/ControlPanel/Advanced": {
"title": "$:/core/ui/ControlPanel/Advanced",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
"text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" \"$:/core/ui/ControlPanel/TiddlerFields\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/Appearance": {
"title": "$:/core/ui/ControlPanel/Appearance",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Appearance/Caption}}",
"text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Theme\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/Basics": {
"title": "$:/core/ui/ControlPanel/Basics",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Basics/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/language/DefaultNewTiddlerTitle\"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/language/DefaultNewTiddlerTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Tags\" default=\"\" tag=\"input\"/> |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
},
"$:/core/ui/ControlPanel/EditorTypes": {
"title": "$:/core/ui/ControlPanel/EditorTypes",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/Info": {
"title": "$:/core/ui/ControlPanel/Info",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Info/Caption}}",
"text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Basics\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/KeyboardShortcuts": {
"title": "$:/core/ui/ControlPanel/KeyboardShortcuts",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip=<<lingo Remove/Hint>>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n×\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[all[tiddlers+shadows][$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>prefix[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/LoadedModules": {
"title": "$:/core/ui/ControlPanel/LoadedModules",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
},
"$:/core/ui/ControlPanel/Modals/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
"subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
"text": "\\define install-plugin-button()\n<$button>\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\"\"\">\n{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\n</$list>\n</$button>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1><$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<<install-plugin-button>>\n</div>\n</div>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\"\"\">\n<em>\n{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}\n</em>\n</$list>\n</div>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[description]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<div class=\"tc-plugin-library\">\n\n!! <$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link>\n\n//<$view field=\"url\"/>//\n\n<$transclude/>\n\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n\n<<display-server-connection>>\n</div>\n</$list>\n\\end\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<div>\n<<plugin-library-listing>>\n</div>\n\n</$importvariables>\n"
},
"$:/core/ui/ControlPanel/Palette": {
"title": "$:/core/ui/ControlPanel/Palette",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Palette/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/snippets/paletteeditor}}\n\n</$reveal>\n\n"
},
"$:/core/ui/ControlPanel/Parsing": {
"title": "$:/core/ui/ControlPanel/Parsing",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
},
"$:/core/ui/ControlPanel/Plugins/Add/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
"text": "<<display-server-assets language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
"text": "<<display-server-assets plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
"text": "<<display-server-assets theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green\" style=\"background:blue;\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
"text": "<<plugin-table language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
"text": "<<plugin-table plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
"text": "<<plugin-table theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[description]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\">>\n"
},
"$:/core/ui/ControlPanel/Saving/DownloadSaver": {
"title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Saving/General": {
"title": "$:/core/ui/ControlPanel/Saving/General",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
"list-before": "",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Saving/TiddlySpot": {
"title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define backupURL()\nhttp://$(userName)$.tiddlyspot.com/backup/\n\\end\n\\define backupLink()\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<backupURL>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<backupLink>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>"
},
"$:/core/ui/ControlPanel/Saving": {
"title": "$:/core/ui/ControlPanel/Saving",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Saving/Caption}}",
"text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Saving/General\">>\n</div>\n"
},
"$:/core/buttonstyles/Borderless": {
"title": "$:/core/buttonstyles/Borderless",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
"text": "tc-btn-invisible"
},
"$:/core/buttonstyles/Boxed": {
"title": "$:/core/buttonstyles/Boxed",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
"text": "tc-btn-boxed"
},
"$:/core/buttonstyles/Rounded": {
"title": "$:/core/buttonstyles/Rounded",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
"text": "tc-btn-rounded"
},
"$:/core/ui/ControlPanel/Settings/CamelCase": {
"title": "$:/core/ui/ControlPanel/Settings/CamelCase",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultMoreSidebarTab/\n\n<$link to=\"$:/config/DefaultMoreSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultMoreSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
"title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
"title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n <option value=\"above\"><<lingo \"OpenAbove\">></option>\n <option value=\"below\"><<lingo \"OpenBelow\">></option>\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/MissingLinks": {
"title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationHistory": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
"title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/TitleLinks": {
"title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings": {
"title": "$:/core/ui/ControlPanel/Settings",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Settings/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ControlPanel/StoryView": {
"title": "$:/core/ui/ControlPanel/StoryView",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
"text": "{{$:/snippets/viewswitcher}}\n"
},
"$:/core/ui/ControlPanel/Stylesheets": {
"title": "$:/core/ui/ControlPanel/Stylesheets",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Stylesheets/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo Stylesheets/Hint>>\n\n{{$:/snippets/peek-stylesheets}}\n"
},
"$:/core/ui/ControlPanel/Theme": {
"title": "$:/core/ui/ControlPanel/Theme",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Theme/Caption}}",
"text": "{{$:/snippets/themeswitcher}}\n"
},
"$:/core/ui/ControlPanel/TiddlerFields": {
"title": "$:/core/ui/ControlPanel/TiddlerFields",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
},
"$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
},
"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/PageControls": {
"title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars": {
"title": "$:/core/ui/ControlPanel/Toolbars",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
"text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" \"$:/state/tabs/controlpanel/toolbars\" \"tc-vertical\">>\n</div>\n"
},
"$:/ControlPanel": {
"title": "$:/ControlPanel",
"icon": "$:/core/images/options-button",
"color": "#bbb",
"text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Info\">>\n</div>\n"
},
"$:/core/ui/DefaultSearchResultList": {
"title": "$:/core/ui/DefaultSearchResultList",
"tags": "$:/tags/SearchResults",
"caption": "{{$:/language/Search/DefaultResults/Caption}}",
"text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n\\end\n<<searchResultList>>\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-current": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-current",
"tags": "$:/tags/EditPreview",
"caption": "differences from current",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-shadow": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-shadow",
"tags": "$:/tags/EditPreview",
"caption": "differences from shadow (if any)",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{{ [{!!draft.of}shadowsource[]] }}} sourceSubTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/output": {
"title": "$:/core/ui/EditTemplate/body/preview/output",
"tags": "$:/tags/EditPreview",
"caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
"text": "<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
},
"$:/state/showeditpreview": {
"title": "$:/state/showeditpreview",
"text": "no"
},
"$:/core/ui/EditTemplate/body/editor": {
"title": "$:/core/ui/EditTemplate/body/editor",
"text": "<$edit\n\n field=\"text\"\n class=\"tc-edit-texteditor\"\n placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n\n><$set\n\n name=\"targetTiddler\"\n value=<<currentTiddler>>\n\n><$list\n\n filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n type=\"nomatch\"\n state=<<config-visibility-title>>\n text=\"hide\"\n class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
},
"$:/core/ui/EditTemplate/body/toolbar/button": {
"title": "$:/core/ui/EditTemplate/body/toolbar/button",
"text": "\\define toolbar-button-icon()\n<$list\n\n filter=\"[all[current]!has[custom-icon]]\"\n variable=\"no-custom-icon\"\n\n><$transclude\n\n tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n filter={{!!condition}}\n variable=\"list-condition\"\n\n><$wikify\n\n name=\"tooltip-text\"\n text=<<toolbar-button-tooltip>>\n mode=\"inline\"\n output=\"text\"\n\n><$list\n\n filter=\"[all[current]!has[dropdown]]\"\n variable=\"no-dropdown\"\n\n><$button\n\n class=\"tc-btn-invisible $(buttonClasses)$\"\n tooltip=<<tooltip-text>>\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button></$list><$list\n\n filter=\"[all[current]has[dropdown]]\"\n variable=\"dropdown\"\n\n><$set\n\n name=\"dropdown-state\"\n value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n popup=<<dropdown-state>>\n class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n selectedClass=\"tc-selected\"\n tooltip=<<tooltip-text>>\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button><$reveal\n\n state=<<dropdown-state>>\n type=\"popup\"\n position=\"below\"\n animate=\"yes\"\n tag=\"span\"\n\n><div\n\n class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n tiddler={{!!dropdown}}\n mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n name=\"buttonClasses\"\n value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
},
"$:/core/ui/EditTemplate/body": {
"title": "$:/core/ui/EditTemplate/body",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[is[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\"></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[is[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/EditTemplate/controls": {
"title": "$:/core/ui/EditTemplate/controls",
"tags": "$:/tags/EditTemplate",
"text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
},
"$:/core/ui/EditTemplate/fields": {
"title": "$:/core/ui/EditTemplate/fields",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define new-field()\n<$vars name={{$:/temp/newfieldname}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=\"$:/temp/newfieldname\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</span>\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"$:/temp/newfieldname\">\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title{$:/temp/newfieldname}sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title{$:/temp/newfieldname}sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$edit-text tiddler=\"$:/temp/newfieldvalue\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\"/>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n"
},
"$:/core/ui/EditTemplate/shadow": {
"title": "$:/core/ui/EditTemplate/shadow",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
},
"$:/core/ui/EditTemplate/tags": {
"title": "$:/core/ui/EditTemplate/tags",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">×</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/>\n\\end\n\n\\define tag-picker-actions()\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<div class=\"tc-edit-tags\">\n<$fieldmangler>\n<$list filter=\"[all[current]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}}/>\n</$list>\n</$fieldmangler>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</div>\n"
},
"$:/core/ui/EditTemplate/title": {
"title": "$:/core/ui/EditTemplate/title",
"tags": "$:/tags/EditTemplate",
"text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus=\"true\"/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[is[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n\n\n"
},
"$:/core/ui/EditTemplate/type": {
"title": "$:/core/ui/EditTemplate/type",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n<div class=\"tc-type-selector\"><$fieldmangler>\n<em class=\"tc-edit\"><<lingo Type/Prompt>></em> <$edit-text field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-popup-handle\"/> <$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}</$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]\"><$link to={{!!name}}><$view field=\"description\"/> (<$view field=\"name\"/>)</$link>\n</$list>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>"
},
"$:/core/ui/EditTemplate": {
"title": "$:/core/ui/EditTemplate",
"text": "\\define actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n\\define frame-classes()\ntc-tiddler-frame tc-tiddler-edit-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$\n\\end\n<div class=<<frame-classes>> data-tiddler-title=<<currentTiddler>>>\n<$fieldmangler>\n<$set name=\"storyTiddler\" value=<<currentTiddler>>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" actions=<<actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>>/>\n</$set>\n</$list>\n</$keyboard>\n</$keyboard>\n</$set>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/Buttons/cancel": {
"title": "$:/core/ui/Buttons/cancel",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
"description": "{{$:/language/Buttons/Cancel/Hint}}",
"text": "<$button message=\"tm-cancel-tiddler\" tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/delete": {
"title": "$:/core/ui/Buttons/delete",
"tags": "$:/tags/EditToolbar $:/tags/ViewToolbar",
"caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}",
"description": "{{$:/language/Buttons/Delete/Hint}}",
"text": "<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save": {
"title": "$:/core/ui/Buttons/save",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
"description": "{{$:/language/Buttons/Save/Hint}}",
"text": "<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n"
},
"$:/core/ui/EditorToolbar/bold": {
"title": "$:/core/ui/EditorToolbar/bold",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/bold",
"caption": "{{$:/language/Buttons/Bold/Caption}}",
"description": "{{$:/language/Buttons/Bold/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((bold))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
},
"$:/core/ui/EditorToolbar/clear-dropdown": {
"title": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
},
"$:/core/ui/EditorToolbar/clear": {
"title": "$:/core/ui/EditorToolbar/clear",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/erase",
"caption": "{{$:/language/Buttons/Clear/Caption}}",
"description": "{{$:/language/Buttons/Clear/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/editor-height-dropdown": {
"title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
},
"$:/core/ui/EditorToolbar/editor-height": {
"title": "$:/core/ui/EditorToolbar/editor-height",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/fixed-height",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
"description": "{{$:/language/Buttons/EditorHeight/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/excise-dropdown": {
"title": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
},
"$:/core/ui/EditorToolbar/excise": {
"title": "$:/core/ui/EditorToolbar/excise",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/excise",
"caption": "{{$:/language/Buttons/Excise/Caption}}",
"description": "{{$:/language/Buttons/Excise/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>type[text/vnc.tiddlywiki]] +[first[]]",
"shortcuts": "((excise))",
"dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/heading-1": {
"title": "$:/core/ui/EditorToolbar/heading-1",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-1",
"caption": "{{$:/language/Buttons/Heading1/Caption}}",
"description": "{{$:/language/Buttons/Heading1/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((heading-1))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-2": {
"title": "$:/core/ui/EditorToolbar/heading-2",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-2",
"caption": "{{$:/language/Buttons/Heading2/Caption}}",
"description": "{{$:/language/Buttons/Heading2/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-2))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-3": {
"title": "$:/core/ui/EditorToolbar/heading-3",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-3",
"caption": "{{$:/language/Buttons/Heading3/Caption}}",
"description": "{{$:/language/Buttons/Heading3/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-3))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/core/ui/EditorToolbar/heading-4",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-4",
"caption": "{{$:/language/Buttons/Heading4/Caption}}",
"description": "{{$:/language/Buttons/Heading4/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-4))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/core/ui/EditorToolbar/heading-5",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-5",
"caption": "{{$:/language/Buttons/Heading5/Caption}}",
"description": "{{$:/language/Buttons/Heading5/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-5))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/core/ui/EditorToolbar/heading-6",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-6",
"caption": "{{$:/language/Buttons/Heading6/Caption}}",
"description": "{{$:/language/Buttons/Heading6/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-6))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
},
"$:/core/ui/EditorToolbar/italic": {
"title": "$:/core/ui/EditorToolbar/italic",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/italic",
"caption": "{{$:/language/Buttons/Italic/Caption}}",
"description": "{{$:/language/Buttons/Italic/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((italic))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
},
"$:/core/ui/EditorToolbar/line-width-dropdown": {
"title": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/line-width": {
"title": "$:/core/ui/EditorToolbar/line-width",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/line-width",
"caption": "{{$:/language/Buttons/LineWidth/Caption}}",
"description": "{{$:/language/Buttons/LineWidth/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>"
},
"$:/core/ui/EditorToolbar/link-dropdown": {
"title": "$:/core/ui/EditorToolbar/link-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define add-link-actions()\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $tiddler=<<dropdown-state>> />\n<$action-deletetiddler $tiddler=<<searchTiddler>> />\n<$action-deletetiddler $tiddler=<<linkTiddler>> />\n\\end\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" >\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"ENTER\" actions=<<add-link-actions>>>\n<$edit-text tiddler=<<searchTiddler>> type=\"search\" tag=\"input\" focus=\"true\" placeholder={{$:/language/Search/Search}} default=\"\"/>\n<$reveal tag=\"span\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-setfield $tiddler=<<searchTiddler>> text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</$keyboard>\n</$vars>\n\n<$reveal tag=\"div\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>"
},
"$:/core/ui/EditorToolbar/link": {
"title": "$:/core/ui/EditorToolbar/link",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/link",
"caption": "{{$:/language/Buttons/Link/Caption}}",
"description": "{{$:/language/Buttons/Link/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((link))",
"dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/linkify": {
"title": "$:/core/ui/EditorToolbar/linkify",
"caption": "{{$:/language/Buttons/Linkify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Linkify/Hint}}",
"icon": "$:/core/images/linkify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((linkify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[\"\n\tsuffix=\"]]\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-bullet": {
"title": "$:/core/ui/EditorToolbar/list-bullet",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-bullet",
"caption": "{{$:/language/Buttons/ListBullet/Caption}}",
"description": "{{$:/language/Buttons/ListBullet/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-bullet))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-number": {
"title": "$:/core/ui/EditorToolbar/list-number",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-number",
"caption": "{{$:/language/Buttons/ListNumber/Caption}}",
"description": "{{$:/language/Buttons/ListNumber/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-number))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-block": {
"title": "$:/core/ui/EditorToolbar/mono-block",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-block",
"caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
"description": "{{$:/language/Buttons/MonoBlock/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((mono-block))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-line": {
"title": "$:/core/ui/EditorToolbar/mono-line",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-line",
"caption": "{{$:/language/Buttons/MonoLine/Caption}}",
"description": "{{$:/language/Buttons/MonoLine/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((mono-line))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
},
"$:/core/ui/EditorToolbar/more-dropdown": {
"title": "$:/core/ui/EditorToolbar/more-dropdown",
"text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
},
"$:/core/ui/EditorToolbar/more": {
"title": "$:/core/ui/EditorToolbar/more",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/down-arrow",
"caption": "{{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"condition": "[<targetTiddler>]",
"dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/opacity-dropdown": {
"title": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/EditorToolbar/opacity": {
"title": "$:/core/ui/EditorToolbar/opacity",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/opacity",
"caption": "{{$:/language/Buttons/Opacity/Caption}}",
"description": "{{$:/language/Buttons/Opacity/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"
},
"$:/core/ui/EditorToolbar/paint-dropdown": {
"title": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/paint": {
"title": "$:/core/ui/EditorToolbar/paint",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/paint",
"caption": "{{$:/language/Buttons/Paint/Caption}}",
"description": "{{$:/language/Buttons/Paint/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"
},
"$:/core/ui/EditorToolbar/picture-dropdown": {
"title": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/picture": {
"title": "$:/core/ui/EditorToolbar/picture",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/picture",
"caption": "{{$:/language/Buttons/Picture/Caption}}",
"description": "{{$:/language/Buttons/Picture/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((picture))",
"dropdown": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/preview-type-dropdown": {
"title": "$:/core/ui/EditorToolbar/preview-type-dropdown",
"text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/preview-type": {
"title": "$:/core/ui/EditorToolbar/preview-type",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/chevron-down",
"caption": "{{$:/language/Buttons/PreviewType/Caption}}",
"description": "{{$:/language/Buttons/PreviewType/Hint}}",
"condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
"button-classes": "tc-text-editor-toolbar-item-adjunct",
"dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
},
"$:/core/ui/EditorToolbar/preview": {
"title": "$:/core/ui/EditorToolbar/preview",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/preview-open",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/Preview/Caption}}",
"description": "{{$:/language/Buttons/Preview/Hint}}",
"condition": "[<targetTiddler>]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((preview))",
"text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/quote": {
"title": "$:/core/ui/EditorToolbar/quote",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/quote",
"caption": "{{$:/language/Buttons/Quote/Caption}}",
"description": "{{$:/language/Buttons/Quote/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((quote))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
},
"$:/core/ui/EditorToolbar/rotate-left": {
"title": "$:/core/ui/EditorToolbar/rotate-left",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/rotate-left",
"caption": "{{$:/language/Buttons/RotateLeft/Caption}}",
"description": "{{$:/language/Buttons/RotateLeft/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"rotate-left\"\n/>\n"
},
"$:/core/ui/EditorToolbar/size-dropdown": {
"title": "$:/core/ui/EditorToolbar/size-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> × <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
},
"$:/core/ui/EditorToolbar/size": {
"title": "$:/core/ui/EditorToolbar/size",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/size",
"caption": "{{$:/language/Buttons/Size/Caption}}",
"description": "{{$:/language/Buttons/Size/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/stamp-dropdown": {
"title": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$view tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" mode=\"inline\"/>\n\n</$view>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
},
"$:/core/ui/EditorToolbar/stamp": {
"title": "$:/core/ui/EditorToolbar/stamp",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/stamp",
"caption": "{{$:/language/Buttons/Stamp/Caption}}",
"description": "{{$:/language/Buttons/Stamp/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"shortcuts": "((stamp))",
"dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/strikethrough": {
"title": "$:/core/ui/EditorToolbar/strikethrough",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/strikethrough",
"caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
"description": "{{$:/language/Buttons/Strikethrough/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((strikethrough))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
},
"$:/core/ui/EditorToolbar/subscript": {
"title": "$:/core/ui/EditorToolbar/subscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/subscript",
"caption": "{{$:/language/Buttons/Subscript/Caption}}",
"description": "{{$:/language/Buttons/Subscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((subscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
},
"$:/core/ui/EditorToolbar/superscript": {
"title": "$:/core/ui/EditorToolbar/superscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/superscript",
"caption": "{{$:/language/Buttons/Superscript/Caption}}",
"description": "{{$:/language/Buttons/Superscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((superscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
},
"$:/core/ui/EditorToolbar/transcludify": {
"title": "$:/core/ui/EditorToolbar/transcludify",
"caption": "{{$:/language/Buttons/Transcludify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Transcludify/Hint}}",
"icon": "$:/core/images/transcludify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((transcludify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"{{\"\n\tsuffix=\"}}\"\n/>\n"
},
"$:/core/ui/EditorToolbar/underline": {
"title": "$:/core/ui/EditorToolbar/underline",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/underline",
"caption": "{{$:/language/Buttons/Underline/Caption}}",
"description": "{{$:/language/Buttons/Underline/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((underline))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
},
"$:/core/Filters/AllTags": {
"title": "$:/core/Filters/AllTags",
"tags": "$:/tags/Filter",
"filter": "[tags[]!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTags}}",
"text": ""
},
"$:/core/Filters/AllTiddlers": {
"title": "$:/core/Filters/AllTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTiddlers}}",
"text": ""
},
"$:/core/Filters/Drafts": {
"title": "$:/core/Filters/Drafts",
"tags": "$:/tags/Filter",
"filter": "[has[draft.of]sort[title]]",
"description": "{{$:/language/Filters/Drafts}}",
"text": ""
},
"$:/core/Filters/Missing": {
"title": "$:/core/Filters/Missing",
"tags": "$:/tags/Filter",
"filter": "[all[missing]sort[title]]",
"description": "{{$:/language/Filters/Missing}}",
"text": ""
},
"$:/core/Filters/Orphans": {
"title": "$:/core/Filters/Orphans",
"tags": "$:/tags/Filter",
"filter": "[all[orphans]sort[title]]",
"description": "{{$:/language/Filters/Orphans}}",
"text": ""
},
"$:/core/Filters/OverriddenShadowTiddlers": {
"title": "$:/core/Filters/OverriddenShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[shadow]]",
"description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentSystemTiddlers": {
"title": "$:/core/Filters/RecentSystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentSystemTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentTiddlers": {
"title": "$:/core/Filters/RecentTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentTiddlers}}",
"text": ""
},
"$:/core/Filters/ShadowTiddlers": {
"title": "$:/core/Filters/ShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[all[shadows]sort[title]]",
"description": "{{$:/language/Filters/ShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/StoryList": {
"title": "$:/core/Filters/StoryList",
"tags": "$:/tags/Filter",
"filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
"description": "{{$:/language/Filters/StoryList}}",
"text": ""
},
"$:/core/Filters/SystemTags": {
"title": "$:/core/Filters/SystemTags",
"tags": "$:/tags/Filter",
"filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTags}}",
"text": ""
},
"$:/core/Filters/SystemTiddlers": {
"title": "$:/core/Filters/SystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTiddlers}}",
"text": ""
},
"$:/core/Filters/TypedTiddlers": {
"title": "$:/core/Filters/TypedTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Filters/TypedTiddlers}}",
"text": ""
},
"$:/core/ui/ImportListing": {
"title": "$:/core/ui/ImportListing",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField()\nmessage-$(payloadTiddler)$\n\\end\n\n\\define selectionField()\nselection-$(payloadTiddler)$\n\\end\n\n\\define previewPopupState()\n$(currentTiddler)$!!popup-$(payloadTiddler)$\n\\end\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table>\n<tbody>\n<tr>\n<th>\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\"/>\n</td>\n<td>\n<$reveal type=\"nomatch\" state=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"yes\">\n{{$:/core/images/right-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"no\">\n{{$:/core/images/down-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n</td>\n</tr>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" state=<<previewPopupState>> tag=\"div\">\n<$list filter=\"[{$:/state/importpreviewtype}has[text]]\" variable=\"listItem\" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>\n<$transclude tiddler={{$:/state/importpreviewtype}}/>\n</$list>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Diff": {
"title": "$:/core/ui/ImportPreviews/Diff",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Diff}}",
"text": "<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>>/>\n"
},
"$:/core/ui/ImportPreviews/DiffFields": {
"title": "$:/core/ui/ImportPreviews/DiffFields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/DiffFields}}",
"text": "<$macrocall $name=\"compareTiddlers\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>> exclude=\"text\"/>\n"
},
"$:/core/ui/ImportPreviews/Fields": {
"title": "$:/core/ui/ImportPreviews/Fields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Fields}}",
"text": "<$tiddler tiddler=<<payloadTiddler>>>\n<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n</$tiddler>\n"
},
"$:/core/ui/ImportPreviews/Text": {
"title": "$:/core/ui/ImportPreviews/Text",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Text}}",
"text": "<$transclude tiddler=<<payloadTiddler>> mode=\"block\"/>\n"
},
"$:/core/ui/ImportPreviews/TextRaw": {
"title": "$:/core/ui/ImportPreviews/TextRaw",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/TextRaw}}",
"text": "<pre><code><$view tiddler=<<payloadTiddler>>/></code></pre>"
},
"$:/core/ui/ListItemTemplate": {
"title": "$:/core/ui/ListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</div>"
},
"$:/Manager/ItemMain/Fields": {
"title": "$:/Manager/ItemMain/Fields",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/Fields}}",
"text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/Manager/ItemMain/RawText": {
"title": "$:/Manager/ItemMain/RawText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/RawText}}",
"text": "<pre><code><$view/></code></pre>\n"
},
"$:/Manager/ItemMain/WikifiedText": {
"title": "$:/Manager/ItemMain/WikifiedText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/WikifiedText}}",
"text": "<$transclude mode=\"block\"/>\n"
},
"$:/Manager/ItemSidebar/Colour": {
"title": "$:/Manager/ItemSidebar/Colour",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Colour}}",
"text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Icon": {
"title": "$:/Manager/ItemSidebar/Icon",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Icon}}",
"text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tags": {
"title": "$:/Manager/ItemSidebar/Tags",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tags}}",
"text": "\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<p>\n<$list filter=\"[is[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tools": {
"title": "$:/Manager/ItemSidebar/Tools",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tools}}",
"text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
},
"$:/Manager": {
"title": "$:/Manager",
"icon": "$:/core/images/list",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
},
"$:/core/ui/MissingTemplate": {
"title": "$:/core/ui/MissingTemplate",
"text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
},
"$:/core/ui/MoreSideBar/All": {
"title": "$:/core/ui/MoreSideBar/All",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/All/Caption}}",
"text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Drafts": {
"title": "$:/core/ui/MoreSideBar/Drafts",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Drafts/Caption}}",
"text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Explorer": {
"title": "$:/core/ui/MoreSideBar/Explorer",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Explorer/Caption}}",
"text": "<<tree \"$:/\">>\n"
},
"$:/core/ui/MoreSideBar/Missing": {
"title": "$:/core/ui/MoreSideBar/Missing",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Missing/Caption}}",
"text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Orphans": {
"title": "$:/core/ui/MoreSideBar/Orphans",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Orphans/Caption}}",
"text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Plugins/Plugins\">>\n"
},
"$:/core/ui/MoreSideBar/Recent": {
"title": "$:/core/ui/MoreSideBar/Recent",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/MoreSideBar/Shadows": {
"title": "$:/core/ui/MoreSideBar/Shadows",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Shadows/Caption}}",
"text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/System": {
"title": "$:/core/ui/MoreSideBar/System",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/System/Caption}}",
"text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Tags": {
"title": "$:/core/ui/MoreSideBar/Tags",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Tags/Caption}}",
"text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
},
"$:/core/ui/MoreSideBar/Types": {
"title": "$:/core/ui/MoreSideBar/Types",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Types/Caption}}",
"text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Languages": {
"title": "$:/core/ui/MoreSideBar/Plugins/Languages",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Theme": {
"title": "$:/core/ui/MoreSideBar/Plugins/Theme",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/Buttons/advanced-search": {
"title": "$:/core/ui/Buttons/advanced-search",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
"description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
"text": "\\define control-panel-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/close-all": {
"title": "$:/core/ui/Buttons/close-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}",
"description": "{{$:/language/Buttons/CloseAll/Hint}}",
"text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/control-panel": {
"title": "$:/core/ui/Buttons/control-panel",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
"description": "{{$:/language/Buttons/ControlPanel/Hint}}",
"text": "\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/encryption": {
"title": "$:/core/ui/Buttons/encryption",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
"description": "{{$:/language/Buttons/Encryption/Hint}}",
"text": "<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>"
},
"$:/core/ui/Buttons/export-page": {
"title": "$:/core/ui/Buttons/export-page",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
"description": "{{$:/language/Buttons/ExportPage/Hint}}",
"text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
},
"$:/core/ui/Buttons/fold-all": {
"title": "$:/core/ui/Buttons/fold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
"description": "{{$:/language/Buttons/FoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/full-screen": {
"title": "$:/core/ui/Buttons/full-screen",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
"description": "{{$:/language/Buttons/FullScreen/Hint}}",
"text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/home": {
"title": "$:/core/ui/Buttons/home",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
"description": "{{$:/language/Buttons/Home/Hint}}",
"text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/import": {
"title": "$:/core/ui/Buttons/import",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
"description": "{{$:/language/Buttons/Import/Hint}}",
"text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
},
"$:/core/ui/Buttons/language": {
"title": "$:/core/ui/Buttons/language",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
"description": "{{$:/language/Buttons/Language/Hint}}",
"text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/languageswitcher}}\n</div>\n</$reveal>"
},
"$:/core/ui/Buttons/manager": {
"title": "$:/core/ui/Buttons/manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
"description": "{{$:/language/Buttons/Manager/Hint}}",
"text": "\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/more-page-actions": {
"title": "$:/core/ui/Buttons/more-page-actions",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-image": {
"title": "$:/core/ui/Buttons/new-image",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
"description": "{{$:/language/Buttons/NewImage/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"image/jpeg\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/new-journal": {
"title": "$:/core/ui/Buttons/new-journal",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
"description": "{{$:/language/Buttons/NewJournal/Hint}}",
"text": "\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text={{{ [<journalTitle>get[]] }}}/>\n</$reveal>\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text=<<journalText>>/>\n</$reveal>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"journalText\" value={{$:/config/NewJournal/Text}}>\n<<journalButton>>\n</$set></$set></$set>"
},
"$:/core/ui/Buttons/new-tiddler": {
"title": "$:/core/ui/Buttons/new-tiddler",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
"description": "{{$:/language/Buttons/NewTiddler/Hint}}",
"text": "<$button message=\"tm-new-tiddler\" tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/palette": {
"title": "$:/core/ui/Buttons/palette",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
"description": "{{$:/language/Buttons/Palette/Hint}}",
"text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>"
},
"$:/core/ui/Buttons/print": {
"title": "$:/core/ui/Buttons/print",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
"description": "{{$:/language/Buttons/Print/Hint}}",
"text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/refresh": {
"title": "$:/core/ui/Buttons/refresh",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
"description": "{{$:/language/Buttons/Refresh/Hint}}",
"text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save-wiki": {
"title": "$:/core/ui/Buttons/save-wiki",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
"description": "{{$:/language/Buttons/SaveWiki/Hint}}",
"text": "<$button message=\"tm-save-wiki\" param={{$:/config/SaveWikiButton/Template}} tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
},
"$:/core/ui/Buttons/storyview": {
"title": "$:/core/ui/Buttons/storyview",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
"description": "{{$:/language/Buttons/StoryView/Hint}}",
"text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/viewswitcher}}\n</div>\n</$reveal>"
},
"$:/core/ui/Buttons/tag-manager": {
"title": "$:/core/ui/Buttons/tag-manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
"description": "{{$:/language/Buttons/TagManager/Hint}}",
"text": "\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/theme": {
"title": "$:/core/ui/Buttons/theme",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
"description": "{{$:/language/Buttons/Theme/Hint}}",
"text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n{{$:/snippets/themeswitcher}}\n</$linkcatcher>\n</div>\n</$reveal>"
},
"$:/core/ui/Buttons/timestamp": {
"title": "$:/core/ui/Buttons/timestamp",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
"description": "{{$:/language/Buttons/Timestamp/Hint}}",
"text": "<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>"
},
"$:/core/ui/Buttons/unfold-all": {
"title": "$:/core/ui/Buttons/unfold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
"description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/PageTemplate/pagecontrols": {
"title": "$:/core/ui/PageTemplate/pagecontrols",
"text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$reveal>\n</$list>\n</div>\n\n"
},
"$:/core/ui/PageStylesheet": {
"title": "$:/core/ui/PageStylesheet",
"text": "<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n\n</$importvariables>\n"
},
"$:/core/ui/PageTemplate/alerts": {
"title": "$:/core/ui/PageTemplate/alerts",
"tags": "$:/tags/PageTemplate",
"text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
},
"$:/core/ui/PageTemplate/pluginreloadwarning": {
"title": "$:/core/ui/PageTemplate/pluginreloadwarning",
"tags": "$:/tags/PageTemplate",
"text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[has[plugin-type]haschanged[]!plugin-type[import]limit[1]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/PageTemplate/sidebar": {
"title": "$:/core/ui/PageTemplate/sidebar",
"tags": "$:/tags/PageTemplate",
"text": "<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n\n<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n\n{{||$:/core/ui/PageTemplate/pagecontrols}}\n\n<$transclude tiddler=\"$:/core/ui/SideBarLists\" mode=\"inline\"/>\n\n</$reveal>\n\n</div>\n\n</$scrollable>"
},
"$:/core/ui/PageTemplate/story": {
"title": "$:/core/ui/PageTemplate/story",
"tags": "$:/tags/PageTemplate",
"text": "<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template=\"$:/core/ui/ViewTemplate\" editTemplate=\"$:/core/ui/EditTemplate\" storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
},
"$:/core/ui/PageTemplate/topleftbar": {
"title": "$:/core/ui/PageTemplate/topleftbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate/toprightbar": {
"title": "$:/core/ui/PageTemplate/toprightbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate": {
"title": "$:/core/ui/PageTemplate",
"text": "\\define containerClasses()\ntc-page-container tc-page-view-$(themeTitle)$ tc-language-$(languageTitle)$\n\\end\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=\"\">\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$importvariables>\n"
},
"$:/core/ui/PluginInfo": {
"title": "$:/core/ui/PluginInfo",
"text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
},
"$:/core/ui/PluginInfo/Default/contents": {
"title": "$:/core/ui/PluginInfo/Default/contents",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n"
},
"$:/core/ui/PluginListItemTemplate": {
"title": "$:/core/ui/PluginListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"description\">\n<$view field=\"title\"/>\n</$view>\n</$link>\n</div>"
},
"$:/core/ui/SearchResults": {
"title": "$:/core/ui/SearchResults",
"text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n\n</$list>\n\n</div>\n"
},
"$:/core/ui/SideBar/More": {
"title": "$:/core/ui/SideBar/More",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/More/Caption}}",
"text": "<div class=\"tc-more-sidebar\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" default={{$:/config/DefaultMoreSidebarTab}} state=\"$:/state/tab/moresidebar\" class=\"tc-vertical\" />\n</div>"
},
"$:/core/ui/SideBar/Open": {
"title": "$:/core/ui/SideBar/Open",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Open/Caption}}",
"text": "\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=\"$:/StoryList\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" storyview=\"pop\">\n<div style=\"position: relative;\">\n<$droppable actions=<<drop-actions>>>\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<div>\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">×</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$droppable>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<drop-actions>>>\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\n</$droppable>\n</$tiddler>\n"
},
"$:/core/ui/SideBar/Recent": {
"title": "$:/core/ui/SideBar/Recent",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/SideBar/Tools": {
"title": "$:/core/ui/SideBar/Tools",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/SideBarLists": {
"title": "$:/core/ui/SideBarLists",
"text": "<div class=\"tc-sidebar-lists\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/search\">\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search}}/>\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search{$(searchTiddler)$}]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$list>\n</$button>\n</$reveal>\n<$reveal state=\"$:/temp/search\" type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n{{$:/core/ui/SearchResults}}\n\n</$list>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" />\n\n</div>\n"
},
"$:/TagManager": {
"title": "$:/TagManager",
"icon": "$:/core/images/tag-button",
"color": "#bbb",
"caption": "{{$:/language/TagManager/Caption}}",
"text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/icon/$title$\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/icon/$title$\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$title$!!icon\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define qualifyTitle(title)\n$title$$(currentTiddler)$\n\\end\n\\define toggleButton(state)\n<$reveal state=\"$state$\" type=\"match\" text=\"closed\" default=\"closed\">\n<$button set=\"$state$\" setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal state=\"$state$\" type=\"match\" text=\"open\" default=\"closed\">\n<$button set=\"$state$\" setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td><$macrocall $name=\"tag\" tag=<<currentTiddler>>/></td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state=<<qualifyTitle \"$:/state/tag-manager/\">> /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal state=<<qualifyTitle \"$:/state/tag-manager/\">> type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td>\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
},
"$:/core/ui/TagTemplate": {
"title": "$:/core/ui/TagTemplate",
"text": "<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
},
"$:/core/ui/TiddlerFieldTemplate": {
"title": "$:/core/ui/TiddlerFieldTemplate",
"text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
},
"$:/core/ui/TiddlerFields": {
"title": "$:/core/ui/TiddlerFields",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
},
"$:/core/ui/TiddlerInfo/Advanced": {
"title": "$:/core/ui/TiddlerInfo/Advanced",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
"text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Fields": {
"title": "$:/core/ui/TiddlerInfo/Fields",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Fields/Caption}}",
"text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"
},
"$:/core/ui/TiddlerInfo/List": {
"title": "$:/core/ui/TiddlerInfo/List",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/List/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Listed": {
"title": "$:/core/ui/TiddlerInfo/Listed",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Listed/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/References": {
"title": "$:/core/ui/TiddlerInfo/References",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/References/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Tagging": {
"title": "$:/core/ui/TiddlerInfo/Tagging",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Tools": {
"title": "$:/core/ui/TiddlerInfo/Tools",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/TiddlerInfo": {
"title": "$:/core/ui/TiddlerInfo",
"text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>"
},
"$:/core/ui/TopBar/menu": {
"title": "$:/core/ui/TopBar/menu",
"tags": "$:/tags/TopRightBar",
"text": "<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$reveal>\n"
},
"$:/core/ui/UntaggedTemplate": {
"title": "$:/core/ui/UntaggedTemplate",
"text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/body": {
"title": "$:/core/ui/ViewTemplate/body",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" state=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>"
},
"$:/core/ui/ViewTemplate/classic": {
"title": "$:/core/ui/ViewTemplate/classic",
"tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/import": {
"title": "$:/core/ui/ViewTemplate/import",
"tags": "$:/tags/ViewTemplate",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define buttons()\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n<<lingo Listing/Preview>> <$select tiddler=\"$:/state/importpreviewtype\" default=\"$:/core/ui/ImportPreviews/Text\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ImportPreview]!has[draft.of]]\">\n<option value=<<currentTiddler>>>{{!!caption}}</option>\n</$list>\n</$select>\n\\end\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<<buttons>>\n\n{{||$:/core/ui/ImportListing}}\n\n<<buttons>>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ViewTemplate/plugin": {
"title": "$:/core/ui/ViewTemplate/plugin",
"tags": "$:/tags/ViewTemplate",
"text": "<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/subtitle": {
"title": "$:/core/ui/ViewTemplate/subtitle",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/tags": {
"title": "$:/core/ui/ViewTemplate/tags",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>"
},
"$:/core/ui/ViewTemplate/title": {
"title": "$:/core/ui/ViewTemplate/title",
"tags": "$:/tags/ViewTemplate",
"text": "\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}/>\n</span>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo\"/>\n\n</$reveal>\n</div>"
},
"$:/core/ui/ViewTemplate/unfold": {
"title": "$:/core/ui/ViewTemplate/unfold",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" state=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" state=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate": {
"title": "$:/core/ui/ViewTemplate",
"text": "\\define frame-classes()\ntc-tiddler-frame tc-tiddler-view-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$ $(tiddlerTagClasses)$ $(userClass)$\n\\end\n\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">> userClass={{!!class}}><$tiddler tiddler=<<currentTiddler>>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class=<<frame-classes>>><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$tiddler></$vars>\n"
},
"$:/core/ui/Buttons/clone": {
"title": "$:/core/ui/Buttons/clone",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
"description": "{{$:/language/Buttons/Clone/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Clone/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close-others": {
"title": "$:/core/ui/Buttons/close-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
"description": "{{$:/language/Buttons/CloseOthers/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close": {
"title": "$:/core/ui/Buttons/close",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
"description": "{{$:/language/Buttons/Close/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Close/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/edit": {
"title": "$:/core/ui/Buttons/edit",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
"description": "{{$:/language/Buttons/Edit/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Edit/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/export-tiddler": {
"title": "$:/core/ui/Buttons/export-tiddler",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
"description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
"text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
},
"$:/core/ui/Buttons/fold-bar": {
"title": "$:/core/ui/Buttons/fold-bar",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
"description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
"text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
},
"$:/core/ui/Buttons/fold-others": {
"title": "$:/core/ui/Buttons/fold-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
"description": "{{$:/language/Buttons/FoldOthers/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/fold": {
"title": "$:/core/ui/Buttons/fold",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
"description": "{{$:/language/Buttons/Fold/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>"
},
"$:/core/ui/Buttons/info": {
"title": "$:/core/ui/Buttons/info",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
"description": "{{$:/language/Buttons/Info/Hint}}",
"text": "\\whitespace trim\n\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Info/Caption}}/>\n</span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
},
"$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/core/ui/Buttons/more-tiddler-actions",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-here": {
"title": "$:/core/ui/Buttons/new-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
"description": "{{$:/language/Buttons/NewHere/Hint}}",
"text": "\\whitespace trim\n\\define newHereButtonTags()\n[[$(currentTiddler)$]]\n\\end\n\\define newHereButton()\n<$button tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<newHereButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>"
},
"$:/core/ui/Buttons/new-journal-here": {
"title": "$:/core/ui/Buttons/new-journal-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
"description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
"text": "\\whitespace trim\n\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>\n</span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>"
},
"$:/core/ui/Buttons/open-window": {
"title": "$:/core/ui/Buttons/open-window",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
"description": "{{$:/language/Buttons/OpenWindow/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permalink": {
"title": "$:/core/ui/Buttons/permalink",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
"description": "{{$:/language/Buttons/Permalink/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permalink/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permaview": {
"title": "$:/core/ui/Buttons/permaview",
"tags": "$:/tags/ViewToolbar $:/tags/PageControls",
"caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
"description": "{{$:/language/Buttons/Permaview/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permaview/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/DefaultTiddlers": {
"title": "$:/DefaultTiddlers",
"text": "GettingStarted\n"
},
"$:/temp/advancedsearch": {
"title": "$:/temp/advancedsearch",
"text": ""
},
"$:/snippets/allfields": {
"title": "$:/snippets/allfields",
"text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
},
"$:/config/AnimationDuration": {
"title": "$:/config/AnimationDuration",
"text": "400"
},
"$:/config/AutoSave": {
"title": "$:/config/AutoSave",
"text": "yes"
},
"$:/config/BitmapEditor/Colour": {
"title": "$:/config/BitmapEditor/Colour",
"text": "#444"
},
"$:/config/BitmapEditor/ImageSizes": {
"title": "$:/config/BitmapEditor/ImageSizes",
"text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
},
"$:/config/BitmapEditor/LineWidth": {
"title": "$:/config/BitmapEditor/LineWidth",
"text": "3px"
},
"$:/config/BitmapEditor/LineWidths": {
"title": "$:/config/BitmapEditor/LineWidths",
"text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
},
"$:/config/BitmapEditor/Opacities": {
"title": "$:/config/BitmapEditor/Opacities",
"text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
},
"$:/config/BitmapEditor/Opacity": {
"title": "$:/config/BitmapEditor/Opacity",
"text": "1.0"
},
"$:/config/DefaultMoreSidebarTab": {
"title": "$:/config/DefaultMoreSidebarTab",
"text": "$:/core/ui/MoreSideBar/Tags"
},
"$:/config/DefaultSidebarTab": {
"title": "$:/config/DefaultSidebarTab",
"text": "$:/core/ui/SideBar/Open"
},
"$:/config/DownloadSaver/AutoSave": {
"title": "$:/config/DownloadSaver/AutoSave",
"text": "no"
},
"$:/config/Drafts/TypingTimeout": {
"title": "$:/config/Drafts/TypingTimeout",
"text": "400"
},
"$:/config/EditTemplateFields/Visibility/title": {
"title": "$:/config/EditTemplateFields/Visibility/title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/tags": {
"title": "$:/config/EditTemplateFields/Visibility/tags",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/text": {
"title": "$:/config/EditTemplateFields/Visibility/text",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/creator": {
"title": "$:/config/EditTemplateFields/Visibility/creator",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/created": {
"title": "$:/config/EditTemplateFields/Visibility/created",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modified": {
"title": "$:/config/EditTemplateFields/Visibility/modified",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modifier": {
"title": "$:/config/EditTemplateFields/Visibility/modifier",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/type": {
"title": "$:/config/EditTemplateFields/Visibility/type",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.title": {
"title": "$:/config/EditTemplateFields/Visibility/draft.title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.of": {
"title": "$:/config/EditTemplateFields/Visibility/draft.of",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/revision": {
"title": "$:/config/EditTemplateFields/Visibility/revision",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/bag": {
"title": "$:/config/EditTemplateFields/Visibility/bag",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
"text": "hide"
},
"$:/config/EditorTypeMappings/image/gif": {
"title": "$:/config/EditorTypeMappings/image/gif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpeg": {
"title": "$:/config/EditorTypeMappings/image/jpeg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpg": {
"title": "$:/config/EditorTypeMappings/image/jpg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/png": {
"title": "$:/config/EditorTypeMappings/image/png",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/x-icon": {
"title": "$:/config/EditorTypeMappings/image/x-icon",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
"title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
"text": "text"
},
"$:/config/Manager/Show": {
"title": "$:/config/Manager/Show",
"text": "tiddlers"
},
"$:/config/Manager/Filter": {
"title": "$:/config/Manager/Filter",
"text": ""
},
"$:/config/Manager/Order": {
"title": "$:/config/Manager/Order",
"text": "forward"
},
"$:/config/Manager/Sort": {
"title": "$:/config/Manager/Sort",
"text": "title"
},
"$:/config/Manager/System": {
"title": "$:/config/Manager/System",
"text": "system"
},
"$:/config/Manager/Tag": {
"title": "$:/config/Manager/Tag",
"text": ""
},
"$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
"title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
"text": "hide"
},
"$:/config/MissingLinks": {
"title": "$:/config/MissingLinks",
"text": "yes"
},
"$:/config/Navigation/UpdateAddressBar": {
"title": "$:/config/Navigation/UpdateAddressBar",
"text": "no"
},
"$:/config/Navigation/UpdateHistory": {
"title": "$:/config/Navigation/UpdateHistory",
"text": "no"
},
"$:/config/OfficialPluginLibrary": {
"title": "$:/config/OfficialPluginLibrary",
"tags": "$:/tags/PluginLibrary",
"url": "https://tiddlywiki.com/library/v5.1.17/index.html",
"caption": "{{$:/language/OfficialPluginLibrary}}",
"text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
},
"$:/config/Navigation/openLinkFromInsideRiver": {
"title": "$:/config/Navigation/openLinkFromInsideRiver",
"text": "below"
},
"$:/config/Navigation/openLinkFromOutsideRiver": {
"title": "$:/config/Navigation/openLinkFromOutsideRiver",
"text": "top"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
"text": "hide"
},
"$:/config/Performance/Instrumentation": {
"title": "$:/config/Performance/Instrumentation",
"text": "no"
},
"$:/config/SaveWikiButton/Template": {
"title": "$:/config/SaveWikiButton/Template",
"text": "$:/core/save/all"
},
"$:/config/SaverFilter": {
"title": "$:/config/SaverFilter",
"text": "[all[]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
},
"$:/config/Search/AutoFocus": {
"title": "$:/config/Search/AutoFocus",
"text": "true"
},
"$:/config/Search/MinLength": {
"title": "$:/config/Search/MinLength",
"text": "3"
},
"$:/config/SearchResults/Default": {
"title": "$:/config/SearchResults/Default",
"text": "$:/core/ui/DefaultSearchResultList"
},
"$:/config/ShortcutInfo/bold": {
"title": "$:/config/ShortcutInfo/bold",
"text": "{{$:/language/Buttons/Bold/Hint}}"
},
"$:/config/ShortcutInfo/cancel-edit-tiddler": {
"title": "$:/config/ShortcutInfo/cancel-edit-tiddler",
"text": "{{$:/language/Buttons/Cancel/Hint}}"
},
"$:/config/ShortcutInfo/excise": {
"title": "$:/config/ShortcutInfo/excise",
"text": "{{$:/language/Buttons/Excise/Hint}}"
},
"$:/config/ShortcutInfo/heading-1": {
"title": "$:/config/ShortcutInfo/heading-1",
"text": "{{$:/language/Buttons/Heading1/Hint}}"
},
"$:/config/ShortcutInfo/heading-2": {
"title": "$:/config/ShortcutInfo/heading-2",
"text": "{{$:/language/Buttons/Heading2/Hint}}"
},
"$:/config/ShortcutInfo/heading-3": {
"title": "$:/config/ShortcutInfo/heading-3",
"text": "{{$:/language/Buttons/Heading3/Hint}}"
},
"$:/config/ShortcutInfo/heading-4": {
"title": "$:/config/ShortcutInfo/heading-4",
"text": "{{$:/language/Buttons/Heading4/Hint}}"
},
"$:/config/ShortcutInfo/heading-5": {
"title": "$:/config/ShortcutInfo/heading-5",
"text": "{{$:/language/Buttons/Heading5/Hint}}"
},
"$:/config/ShortcutInfo/heading-6": {
"title": "$:/config/ShortcutInfo/heading-6",
"text": "{{$:/language/Buttons/Heading6/Hint}}"
},
"$:/config/ShortcutInfo/italic": {
"title": "$:/config/ShortcutInfo/italic",
"text": "{{$:/language/Buttons/Italic/Hint}}"
},
"$:/config/ShortcutInfo/link": {
"title": "$:/config/ShortcutInfo/link",
"text": "{{$:/language/Buttons/Link/Hint}}"
},
"$:/config/ShortcutInfo/list-bullet": {
"title": "$:/config/ShortcutInfo/list-bullet",
"text": "{{$:/language/Buttons/ListBullet/Hint}}"
},
"$:/config/ShortcutInfo/list-number": {
"title": "$:/config/ShortcutInfo/list-number",
"text": "{{$:/language/Buttons/ListNumber/Hint}}"
},
"$:/config/ShortcutInfo/mono-block": {
"title": "$:/config/ShortcutInfo/mono-block",
"text": "{{$:/language/Buttons/MonoBlock/Hint}}"
},
"$:/config/ShortcutInfo/mono-line": {
"title": "$:/config/ShortcutInfo/mono-line",
"text": "{{$:/language/Buttons/MonoLine/Hint}}"
},
"$:/config/ShortcutInfo/picture": {
"title": "$:/config/ShortcutInfo/picture",
"text": "{{$:/language/Buttons/Picture/Hint}}"
},
"$:/config/ShortcutInfo/preview": {
"title": "$:/config/ShortcutInfo/preview",
"text": "{{$:/language/Buttons/Preview/Hint}}"
},
"$:/config/ShortcutInfo/quote": {
"title": "$:/config/ShortcutInfo/quote",
"text": "{{$:/language/Buttons/Quote/Hint}}"
},
"$:/config/ShortcutInfo/save-tiddler": {
"title": "$:/config/ShortcutInfo/save-tiddler",
"text": "{{$:/language/Buttons/Save/Hint}}"
},
"$:/config/ShortcutInfo/stamp": {
"title": "$:/config/ShortcutInfo/stamp",
"text": "{{$:/language/Buttons/Stamp/Hint}}"
},
"$:/config/ShortcutInfo/strikethrough": {
"title": "$:/config/ShortcutInfo/strikethrough",
"text": "{{$:/language/Buttons/Strikethrough/Hint}}"
},
"$:/config/ShortcutInfo/subscript": {
"title": "$:/config/ShortcutInfo/subscript",
"text": "{{$:/language/Buttons/Subscript/Hint}}"
},
"$:/config/ShortcutInfo/superscript": {
"title": "$:/config/ShortcutInfo/superscript",
"text": "{{$:/language/Buttons/Superscript/Hint}}"
},
"$:/config/ShortcutInfo/underline": {
"title": "$:/config/ShortcutInfo/underline",
"text": "{{$:/language/Buttons/Underline/Hint}}"
},
"$:/config/SyncFilter": {
"title": "$:/config/SyncFilter",
"text": "[is[tiddler]] -[[$:/HistoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
},
"$:/config/Tags/MinLength": {
"title": "$:/config/Tags/MinLength",
"text": "0"
},
"$:/config/TextEditor/EditorHeight/Height": {
"title": "$:/config/TextEditor/EditorHeight/Height",
"text": "400px"
},
"$:/config/TextEditor/EditorHeight/Mode": {
"title": "$:/config/TextEditor/EditorHeight/Mode",
"text": "auto"
},
"$:/config/TiddlerInfo/Default": {
"title": "$:/config/TiddlerInfo/Default",
"text": "$:/core/ui/TiddlerInfo/Fields"
},
"$:/config/TiddlerInfo/Mode": {
"title": "$:/config/TiddlerInfo/Mode",
"text": "popup"
},
"$:/config/Tiddlers/TitleLinks": {
"title": "$:/config/Tiddlers/TitleLinks",
"text": "no"
},
"$:/config/Toolbar/ButtonClass": {
"title": "$:/config/Toolbar/ButtonClass",
"text": "tc-btn-invisible"
},
"$:/config/Toolbar/Icons": {
"title": "$:/config/Toolbar/Icons",
"text": "yes"
},
"$:/config/Toolbar/Text": {
"title": "$:/config/Toolbar/Text",
"text": "no"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
"text": "show"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
"text": "hide"
},
"$:/config/shortcuts-mac/bold": {
"title": "$:/config/shortcuts-mac/bold",
"text": "meta-B"
},
"$:/config/shortcuts-mac/italic": {
"title": "$:/config/shortcuts-mac/italic",
"text": "meta-I"
},
"$:/config/shortcuts-mac/underline": {
"title": "$:/config/shortcuts-mac/underline",
"text": "meta-U"
},
"$:/config/shortcuts-not-mac/bold": {
"title": "$:/config/shortcuts-not-mac/bold",
"text": "ctrl-B"
},
"$:/config/shortcuts-not-mac/italic": {
"title": "$:/config/shortcuts-not-mac/italic",
"text": "ctrl-I"
},
"$:/config/shortcuts-not-mac/underline": {
"title": "$:/config/shortcuts-not-mac/underline",
"text": "ctrl-U"
},
"$:/config/shortcuts/cancel-edit-tiddler": {
"title": "$:/config/shortcuts/cancel-edit-tiddler",
"text": "escape"
},
"$:/config/shortcuts/excise": {
"title": "$:/config/shortcuts/excise",
"text": "ctrl-E"
},
"$:/config/shortcuts/heading-1": {
"title": "$:/config/shortcuts/heading-1",
"text": "ctrl-1"
},
"$:/config/shortcuts/heading-2": {
"title": "$:/config/shortcuts/heading-2",
"text": "ctrl-2"
},
"$:/config/shortcuts/heading-3": {
"title": "$:/config/shortcuts/heading-3",
"text": "ctrl-3"
},
"$:/config/shortcuts/heading-4": {
"title": "$:/config/shortcuts/heading-4",
"text": "ctrl-4"
},
"$:/config/shortcuts/heading-5": {
"title": "$:/config/shortcuts/heading-5",
"text": "ctrl-5"
},
"$:/config/shortcuts/heading-6": {
"title": "$:/config/shortcuts/heading-6",
"text": "ctrl-6"
},
"$:/config/shortcuts/link": {
"title": "$:/config/shortcuts/link",
"text": "ctrl-L"
},
"$:/config/shortcuts/linkify": {
"title": "$:/config/shortcuts/linkify",
"text": "alt-shift-L"
},
"$:/config/shortcuts/list-bullet": {
"title": "$:/config/shortcuts/list-bullet",
"text": "ctrl-shift-L"
},
"$:/config/shortcuts/list-number": {
"title": "$:/config/shortcuts/list-number",
"text": "ctrl-shift-N"
},
"$:/config/shortcuts/mono-block": {
"title": "$:/config/shortcuts/mono-block",
"text": "ctrl-shift-M"
},
"$:/config/shortcuts/mono-line": {
"title": "$:/config/shortcuts/mono-line",
"text": "ctrl-M"
},
"$:/config/shortcuts/picture": {
"title": "$:/config/shortcuts/picture",
"text": "ctrl-shift-I"
},
"$:/config/shortcuts/preview": {
"title": "$:/config/shortcuts/preview",
"text": "alt-P"
},
"$:/config/shortcuts/quote": {
"title": "$:/config/shortcuts/quote",
"text": "ctrl-Q"
},
"$:/config/shortcuts/save-tiddler": {
"title": "$:/config/shortcuts/save-tiddler",
"text": "ctrl+enter"
},
"$:/config/shortcuts/stamp": {
"title": "$:/config/shortcuts/stamp",
"text": "ctrl-S"
},
"$:/config/shortcuts/strikethrough": {
"title": "$:/config/shortcuts/strikethrough",
"text": "ctrl-T"
},
"$:/config/shortcuts/subscript": {
"title": "$:/config/shortcuts/subscript",
"text": "ctrl-shift-B"
},
"$:/config/shortcuts/superscript": {
"title": "$:/config/shortcuts/superscript",
"text": "ctrl-shift-P"
},
"$:/config/shortcuts/transcludify": {
"title": "$:/config/shortcuts/transcludify",
"text": "alt-shift-T"
},
"$:/config/WikiParserRules/Inline/wikilink": {
"title": "$:/config/WikiParserRules/Inline/wikilink",
"text": "enable"
},
"$:/snippets/currpalettepreview": {
"title": "$:/snippets/currpalettepreview",
"text": "\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch()\n<$set name=\"swatchColour\" value={{##$(colour)$}}\n><div class=\"tc-swatch\" style=<<swatchStyle>> title=<<colour>>/></$set>\n\\end\n<div class=\"tc-swatches-horiz\"><$list filter=\"\nforeground\nbackground\nmuted-foreground\nprimary\npage-background\ntab-background\ntiddler-info-background\n\" variable=\"colour\"><<swatch>></$list></div>"
},
"$:/snippets/download-wiki-button": {
"title": "$:/snippets/download-wiki-button",
"text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
},
"$:/language": {
"title": "$:/language",
"text": "$:/languages/en-GB"
},
"$:/snippets/languageswitcher": {
"title": "$:/snippets/languageswitcher",
"text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n\n<$linkcatcher to=\"$:/language\">\n<div class=\"tc-chooser tc-language-chooser\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/language}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/macros/CSS": {
"title": "$:/core/macros/CSS",
"tags": "$:/tags/Macro",
"text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"/></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n -webkit-box-shadow: $shadow$;\n -moz-box-shadow: $shadow$;\n box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n -webkit-filter: $filter$;\n -moz-filter: $filter$;\n filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n -webkit-transition: $transition$;\n -moz-transition: $transition$;\n transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n -webkit-transform-origin: $origin$;\n -moz-transform-origin: $origin$;\n transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-background-attachment(text)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" type=\"nomatch\" text=\"\">$text$</$reveal>\n\\end\n"
},
"$:/core/macros/colour-picker": {
"title": "$:/core/macros/colour-picker",
"tags": "$:/tags/Macro",
"text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<div style=\"background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/> \n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
},
"$:/core/macros/copy-to-clipboard": {
"title": "$:/core/macros/copy-to-clipboard",
"tags": "$:/tags/Macro",
"text": "\\define copy-to-clipboard(src,class:\"tc-btn-invisible\",style)\n<$button class=<<__class__>> style=<<__style__>> message=\"tm-copy-to-clipboard\" param=<<__src__>> tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}>\n{{$:/core/images/copy-clipboard}} <$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>\n</$button>\n\\end\n\n\\define copy-to-clipboard-above-right(src,class:\"tc-btn-invisible\",style)\n<div style=\"position: relative;\">\n<div style=\"position: absolute; bottom: 0; right: 0;\">\n<$macrocall $name=\"copy-to-clipboard\" src=<<__src__>> class=<<__class__>> style=<<__style__>>/>\n</div>\n</div>\n\\end\n\n"
},
"$:/core/macros/diff": {
"title": "$:/core/macros/diff",
"tags": "$:/tags/Macro",
"text": "\\define compareTiddlerText(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle)\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>>>\n<$diff-text source=<<source>> dest=<<dest>>/>\n</$set>\n</$set>\n\\end\n\n\\define compareTiddlers(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle,exclude)\n<table class=\"tc-diff-tiddlers\">\n<tbody>\n<$set name=\"sourceFields\" filter=\"[<__sourceTiddlerTitle__>fields[]sort[]]\">\n<$set name=\"destFields\" filter=\"[<__destSubTiddlerTitle__>subtiddlerfields<__destTiddlerTitle__>sort[]]\">\n<$list filter=\"[enlist<sourceFields>] [enlist<destFields>] -[enlist<__exclude__>] +[sort[]]\" variable=\"fieldName\">\n<tr>\n<th>\n<$text text=<<fieldName>>/> \n</th>\n<td>\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>> field=<<fieldName>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>> field=<<fieldName>>>\n<$diff-text source=<<source>> dest=<<dest>>>\n</$diff-text>\n</$set>\n</$set>\n</td>\n</tr>\n</$list>\n</$set>\n</$set>\n</tbody>\n</table>\n\\end\n"
},
"$:/core/macros/export": {
"title": "$:/core/macros/export",
"tags": "$:/tags/Macro",
"text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end\n"
},
"$:/core/macros/image-picker": {
"title": "$:/core/macros/image-picker",
"created": "20170715180840889",
"modified": "20170715180914005",
"tags": "$:/tags/Macro",
"type": "text/vnd.tiddlywiki",
"text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]\",subfilter:\"\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
},
"$:/core/macros/lingo": {
"title": "$:/core/macros/lingo",
"tags": "$:/tags/Macro",
"text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
},
"$:/core/macros/list": {
"title": "$:/core/macros/list",
"tags": "$:/tags/Macro",
"text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\",emptyMessage)\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\" emptyMessage=<<__emptyMessage__>>>\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\">\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<div>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$transclude>\n</div>\n</$droppable>\n</$list>\n</$type$>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"div\">\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$vars>\n\\end\n\n\\define list-tagged-draggable-drop-actions()\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<tag>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<tag>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Assign the list field of the tag with the current ordering -->\n<$action-setfield $tiddler=<<tag>> $field=\"list\" $value=<<order>>/>\n<!-- Add the newly inserted item to the list -->\n<$action-listops $tiddler=<<tag>> $field=\"list\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<$action-listops $tiddler=<<actionTiddler>> $tags=\"[<tag>]\"/>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:\"div\")\n<$set name=\"tag\" value=\"\"\"$tag$\"\"\">\n<$list filter=\"[<tag>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=<<list-tagged-draggable-drop-actions>>>\n<$elementTag$ class=\"tc-droppable-placeholder\">\n \n</$elementTag$>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-tagged-draggable-drop-actions>>>\n<$elementTag$ class=\"tc-droppable-placeholder\">\n \n</$elementTag$>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n\\end\n"
},
"$:/core/macros/tabs": {
"title": "$:/core/macros/tabs",
"tags": "$:/tags/Macro",
"text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler></$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tag-picker": {
"title": "$:/core/macros/tag-picker",
"tags": "$:/tags/Macro",
"text": "\\define add-tag-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n\\end\n\n\\define add-tag-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n\\end\n\n\\define tag-button()\n<$button class=\"tc-btn-invisible\" tag=\"a\">\n$(actions)$\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$button>\n\\end\n\n\\define tag-picker(actions)\n<$set name=\"actions\" value=\"\"\"$actions$\"\"\">\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$keyboard key=\"ENTER\" actions=<<add-tag-actions>>>\n<$edit-text tiddler=\"$:/temp/NewTagName\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</$keyboard>\n</span> <$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class=\"tc-add-tag-button\">\n<$set name=\"tag\" value={{$:/temp/NewTagName}}>\n<$button set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n$actions$\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown\">\n<$list filter=\"[{$:/temp/NewTagName}minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]!is[system]search:title{$:/temp/NewTagName}sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n<hr>\n<$list filter=\"[{$:/temp/NewTagName}minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]is[system]search:title{$:/temp/NewTagName}sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n</div>\n</$reveal>\n</div>\n</$set>\n\\end\n"
},
"$:/core/macros/tag": {
"title": "$:/core/macros/tag",
"tags": "$:/tags/Macro",
"text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/> <$view tiddler=\"\"\"$tag$\"\"\" field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=\"\"\"$tag$\"\"\" icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=\"\"\"$tag$\"\"\" icon={{$tag$!!icon}} colour={{$tag$!!color}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
},
"$:/core/macros/thumbnails": {
"title": "$:/core/macros/thumbnails",
"tags": "$:/tags/Macro",
"text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
},
"$:/core/macros/timeline": {
"title": "$:/core/macros/timeline",
"created": "20141212105914482",
"modified": "20141212110330815",
"tags": "$:/tags/Macro",
"text": "\\define timeline-title()\n<!-- Override this macro with a global macro \n of the same name if you need to change \n how titles are displayed on the timeline \n -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}>\n<<timeline-title>>\n</$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
},
"$:/core/macros/toc": {
"title": "$:/core/macros/toc",
"tags": "$:/tags/Macro",
"text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n <$transclude field=\"caption\">\n <$view field=\"title\"/>\n </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] -[[$tag$]] $exclude$\"\"\">\n <$vars item=<<currentTiddler>> path=\"\"\"$path$/$tag$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\">\n <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n <<toc-caption>>\n </$list>\n <$macrocall $name=\"toc-body\" tag=<<item>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=<<excluded>> path=<<path>>/>\n </li>\n </$set>\n </$vars>\n </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\" \")\n<<toc-body tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"$itemClassFilter$\"\"\">>\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n <li class=<<toc-item-class>>>\n <$link>\n <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n </$reveal>\n </li>\n </$set>\n</$set>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<!-- helper function -->\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n <li class=<<toc-item-class>>>\n <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n </$reveal>\n </li>\n </$set>\n</$set>\n\\end\n\n\\define toc-expandable-empty-message()\n<<toc-linked-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\" exclude:\"\"\"$(excluded)$\"\"\" path:\"\"\"$(path)$\"\"\">>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\" path=\"\"\"$path$/$tag$\"\"\">\n <ol class=\"tc-toc toc-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] -[[$tag$]] $exclude$\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-expandable-body\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n </$list>\n </$list>\n </ol>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\" >\n <li class=<<toc-item-class>>>\n <$link>\n <$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n </$list>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n </$reveal>\n </li>\n </$set>\n</$set>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n </$list>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$macrocall $name=\"\"\"toc-selective-expandable\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n </$reveal>\n </li>\n </$set>\n</$set>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<<toc-linked-selective-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\" exclude:\"\"\"$(excluded)$\"\"\" path:\"\"\"$(path)$\"\"\">>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\" path=\"\"\"$path$/$tag$\"\"\">\n <ol class=\"tc-toc toc-selective-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] -[[$tag$]] $exclude$\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n <$macrocall $name=toc-unlinked-selective-expandable-body tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=<<excluded>> path=<<path>> >\n </$list>\n </$list>\n </ol>\n</$vars>\n\\end\n\n\\define toc-tabbed-selected-item-filter(selectedTiddler)\n[all[current]field:title{$selectedTiddler$}]\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{$selectedTiddler$}}>\n <div class=\"tc-tabbed-table-of-contents\">\n <$linkcatcher to=\"$selectedTiddler$\">\n <div class=\"tc-table-of-contents\">\n <$macrocall $name=\"toc-selective-expandable\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=<<toc-tabbed-selected-item-filter selectedTiddler:\"\"\"$selectedTiddler$\"\"\">>/>\n </div>\n </$linkcatcher>\n <div class=\"tc-tabbed-table-of-contents-content\">\n <$reveal state=\"\"\"$selectedTiddler$\"\"\" type=\"nomatch\" text=\"\">\n <$transclude mode=\"block\" tiddler=\"$template$\">\n <h1><<toc-caption>></h1>\n <$transclude mode=\"block\">$missingText$</$transclude>\n </$transclude>\n </$reveal>\n <$reveal state=\"\"\"$selectedTiddler$\"\"\" type=\"match\" text=\"\">\n $unselectedText$\n </$reveal>\n </div>\n </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=\"\"\"$selectedTiddler$\"\"\">\n <$macrocall $name=\"toc-tabbed-external-nav\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" selectedTiddler=\"\"\"$selectedTiddler$\"\"\" unselectedText=\"\"\"$unselectedText$\"\"\" missingText=\"\"\"$missingText$\"\"\" template=\"\"\"$template$\"\"\"/>\n</$linkcatcher>\n\\end\n\n"
},
"$:/core/macros/translink": {
"title": "$:/core/macros/translink",
"tags": "$:/tags/Macro",
"text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tree": {
"title": "$:/core/macros/tree",
"tags": "$:/tags/Macro",
"text": "\\define leaf-node(prefix)\n<li>\n<$list filter=\"\"\"[[$prefix$$(chunk)$]is[shadow]] [[$prefix$$(chunk)$]is[tiddler]] +[removeprefix[$prefix$]] +[limit[1]]\"\"\" \nemptyMessage=\"\"\"<$text text=\"$prefix$$(chunk)$\"/>\"\"\">\n<span>{{$:/core/images/file}}</span> <$link to=\"\"\"$prefix$$(chunk)$\"\"\">\n<$view field=\"title\"/>\n</$link> \n</$list>\n</li>\n\\end\n\n\\define branch-node(prefix)\n<$reveal type=\"nomatch\" text=\"\" default=\"\"\"$(chunk)$\"\"\">\n<li> \n<$list filter=\"\"\"[all[shadows+tiddlers]prefix[$prefix$$(chunk)$]] -[[$prefix$$(chunk)$]] +[limit[1]]\"\"\">\n<$reveal type=\"nomatch\" state=\"\"\"$:/state/tree/$prefix$$(chunk)$\"\"\" text=\"show\">\n<$button set=\"\"\"$:/state/tree/$prefix$$(chunk)$\"\"\" setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/folder}} <$text text=\"\"\"$(chunk)$\"\"\"/></$button>\n</$reveal>\n<$reveal type=\"match\" state=\"\"\"$:/state/tree/$prefix$$(chunk)$\"\"\" text=\"show\">\n<$button set=\"\"\"$:/state/tree/$prefix$$(chunk)$\"\"\" setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/folder}} <$text text=\"\"\"$(chunk)$\"\"\"/></$button>\n</$reveal>\n</$list>\n<$list filter=\"\"\"[all[shadows+tiddlers]prefix[$prefix$$(chunk)$]] -[[$prefix$$(chunk)$]] +[limit[1]]\"\"\"><span>(<$count filter=\"\"\"[all[shadows+tiddlers]prefix[$prefix$$(chunk)$]] -[[$prefix$$(chunk)$]]\"\"\"/>)</span>\n<$reveal type=\"match\" state=\"\"\"$:/state/tree/$prefix$$(chunk)$\"\"\" text=\"show\">\n<$macrocall $name=\"tree-node\" prefix=\"\"\"$prefix$$(chunk)$\"\"\"/>\n</$reveal>\n</$list>\n</li>\n</$reveal>\n\\end\n\n\\define tree-node(prefix)\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$prefix$]splitbefore[/]sort[title]] +[!suffix[/]]\" variable=\"chunk\">\n<<leaf-node \"\"\"$prefix$\"\"\">>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$prefix$]splitbefore[/]sort[title]] +[suffix[/]]\" variable=\"chunk\">\n<<branch-node \"\"\"$prefix$\"\"\">>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix)\n<div class=\"tc-tree\">\n<span><$text text=\"\"\"$prefix$\"\"\"/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=\"\"\"$prefix$\"\"\"/>\n</div>\n</div>\n\\end\n"
},
"$:/snippets/minilanguageswitcher": {
"title": "$:/snippets/minilanguageswitcher",
"text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/minithemeswitcher": {
"title": "$:/snippets/minithemeswitcher",
"text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/modules": {
"title": "$:/snippets/modules",
"text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
},
"$:/palette": {
"title": "$:/palette",
"text": "$:/palettes/Vanilla"
},
"$:/snippets/paletteeditor": {
"title": "$:/snippets/paletteeditor",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<table>\n<tbody>\n<$list filter=\"[all[current]indexes[]]\" variable=\"colourName\">\n<tr>\n<td>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<$edit-text index=<<colourName>> tag=\"input\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n</$set>\n"
},
"$:/snippets/palettepreview": {
"title": "$:/snippets/palettepreview",
"text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n{{||$:/snippets/currpalettepreview}}\n</$set>\n"
},
"$:/snippets/paletteswitcher": {
"title": "$:/snippets/paletteswitcher",
"text": "<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[description]]\"><$set name=\"cls\" filter=\"[all[current]prefix{$:/palette}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/>{{||$:/snippets/currpalettepreview}}</$link>\n</div></$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/snippets/peek-stylesheets": {
"title": "$:/snippets/peek-stylesheets",
"text": "\\define expandable-stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$vars state=<<qualify \"$:/config/peek-stylesheets/open/\">>>\n<$set name=\"state\" value={{{ [<state>addsuffix<currentTiddler>] }}}>\n<li>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"no\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"yes\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"div\">\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</$reveal>\n</li>\n</$set>\n</$vars>\n</$list>\n</ol>\n\\end\n\n\\define stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<li>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</li>\n</$list>\n</ol>\n\\end\n\n<$vars modeState=<<qualify \"$:/config/peek-stylesheets/mode/\">>>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"expanded\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"restored\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button>\n</$reveal>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<expandable-stylesheets-list>>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<stylesheets-list>>\n</$reveal>\n\n</$vars>\n"
},
"$:/temp/search": {
"title": "$:/temp/search",
"text": ""
},
"$:/tags/AdvancedSearch": {
"title": "$:/tags/AdvancedSearch",
"list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
},
"$:/tags/AdvancedSearch/FilterButton": {
"title": "$:/tags/AdvancedSearch/FilterButton",
"list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
},
"$:/tags/ControlPanel": {
"title": "$:/tags/ControlPanel",
"list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
},
"$:/tags/ControlPanel/Info": {
"title": "$:/tags/ControlPanel/Info",
"list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
},
"$:/tags/ControlPanel/Plugins": {
"title": "$:/tags/ControlPanel/Plugins",
"list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
},
"$:/tags/EditTemplate": {
"title": "$:/tags/EditTemplate",
"list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
},
"$:/tags/EditToolbar": {
"title": "$:/tags/EditToolbar",
"list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
},
"$:/tags/EditorToolbar": {
"title": "$:/tags/EditorToolbar",
"list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
},
"$:/tags/Manager/ItemMain": {
"title": "$:/tags/Manager/ItemMain",
"list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
},
"$:/tags/Manager/ItemSidebar": {
"title": "$:/tags/Manager/ItemSidebar",
"list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
},
"$:/tags/MoreSideBar": {
"title": "$:/tags/MoreSideBar",
"list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Explorer]] [[$:/core/ui/MoreSideBar/Plugins]]",
"text": ""
},
"$:/tags/PageControls": {
"title": "$:/tags/PageControls",
"list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
},
"$:/tags/PageTemplate": {
"title": "$:/tags/PageTemplate",
"list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
"text": ""
},
"$:/tags/SideBar": {
"title": "$:/tags/SideBar",
"list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
"text": ""
},
"$:/tags/TiddlerInfo": {
"title": "$:/tags/TiddlerInfo",
"list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
"text": ""
},
"$:/tags/TiddlerInfo/Advanced": {
"title": "$:/tags/TiddlerInfo/Advanced",
"list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
},
"$:/tags/ViewTemplate": {
"title": "$:/tags/ViewTemplate",
"list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
},
"$:/tags/ViewToolbar": {
"title": "$:/tags/ViewToolbar",
"list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
},
"$:/snippets/themeswitcher": {
"title": "$:/snippets/themeswitcher",
"text": "<$linkcatcher to=\"$:/theme\">\n<div class=\"tc-chooser\"><$list filter=\"[plugin-type[theme]sort[title]]\"><$set name=\"cls\" filter=\"[all[current]field:title{$:/theme}] [[$:/theme]!has[text]addsuffix[s/tiddlywiki/vanilla]field:title<currentTiddler>] +[limit[1]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/wiki/title": {
"title": "$:/core/wiki/title",
"text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
},
"$:/view": {
"title": "$:/view",
"text": "classic"
},
"$:/snippets/viewswitcher": {
"title": "$:/snippets/viewswitcher",
"text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/view\">\n<div class=\"tc-chooser\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/view}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>>\n<$transclude tiddler=<<icon>>/>\n<$text text=<<storyview>>/>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
}
}
}
The following tiddlers were imported:
# [[Brotherhood_of_Shadow_Logo_PNG.png]]
$:/palettes/ContrastLight
{
"tiddlers": {
"$:/plugins/mklauber/math.js/calc.js": {
"text": "/*\\\ntitle: $:/plugins/mklauber/math.js/calc.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar math = require(\"$:/plugins/mklauber/math.js/math.js\");\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CalcWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCalcWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCalcWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\n\tthis.expression = this.document.createElement(\"div\");\n\tthis.renderChildren(this.expression);\n\t\n\tvar text = \"\";\n\ttry {\n\t\ttext = math.eval(this.expression.textContent.trim());\n\t} catch(err) {\n\t\tif(!this.silence){\n\t\t\ttext = \"Unable to parse '\" + this.expression.textContent + \"'\";\n\t\t}\n\t}\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCalcWidget.prototype.execute = function() {\n\tthis.silence = this.getAttribute(\"silence\",false);\n\tvar calc = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tthis.makeChildWidgets([calc]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCalcWidget.prototype.refresh = function(changedTiddlers) {\n\tif(this.refreshChildren(changedTiddlers)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nexports.calc = CalcWidget;\n\n})();\n",
"title": "$:/plugins/mklauber/math.js/calc.js",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/mklauber/math.js/math.js": {
"text": "/*\\\ntitle: $:/plugins/mklauber/math.js/math.js\ntype: application/javascript\nmodule-type: library\n\\*/\n/**\n * math.js\n * https://github.com/josdejong/mathjs\n *\n * Math.js is an extensive math library for JavaScript and Node.js,\n * It features real and complex numbers, units, matrices, a large set of\n * mathematical functions, and a flexible expression parser.\n *\n * @version 2.4.1\n * @date 2015-10-29\n *\n * @license\n * Copyright (C) 2013-2015 Jos de Jong <wjosdejong@gmail.com>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not\n * use this file except in compliance with the License. You may obtain a copy\n * of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.math=t():e.math=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var r={};return t.m=e,t.c=r,t.p=\"\",t(0)}([function(e,t,r){function n(e){var t=i.create(e);return t.create=n,t[\"import\"](r(13)),t}var i=r(1);e.exports=n()},function(e,t,r){e.exports=r(2)},function(e,t,r){var n=r(3).isFactory,i=r(3).deepExtend,a=r(4),o=r(8),s=r(10),u=r(12);t.create=function(e){function t(e){if(!n(e))throw new Error(\"Factory object with properties `type`, `name`, and `factory` expected\");var i,a=r.indexOf(e);return-1===a?(i=e.math===!0?e.factory(f.type,l,t,f.typed,f):e.factory(f.type,l,t,f.typed),r.push(e),c.push(i)):i=c[a],i}if(\"function\"!=typeof Object.create)throw new Error(\"ES5 not supported by this JavaScript engine. Please load the es5-shim and es5-sham library for compatibility.\");var r=[],c=[],f=o.mixin({});f.type={},f.expression={transform:Object.create(f)},f.typed=a.create(f.type);var l={epsilon:1e-14,matrix:\"matrix\",number:\"number\",precision:64,predictable:!1};return e&&i(l,e),f[\"import\"]=t(s),f.config=t(u),f}},function(e,t){\"use strict\";t.clone=function r(e){var t=typeof e;if(\"number\"===t||\"string\"===t||\"boolean\"===t||null===e||void 0===e)return e;if(\"function\"==typeof e.clone)return e.clone();if(Array.isArray(e))return e.map(function(e){return r(e)});if(e instanceof Number)return new Number(e.valueOf());if(e instanceof String)return new String(e.valueOf());if(e instanceof Boolean)return new Boolean(e.valueOf());if(e instanceof Date)return new Date(e.valueOf());if(e&&e.isBigNumber===!0)return e;if(e instanceof RegExp)throw new TypeError(\"Cannot clone \"+e);var n={};for(var i in e)e.hasOwnProperty(i)&&(n[i]=r(e[i]));return n},t.extend=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e},t.deepExtend=function n(e,t){if(Array.isArray(t))throw new TypeError(\"Arrays are not supported by deepExtend\");for(var r in t)if(t.hasOwnProperty(r))if(t[r]&&t[r].constructor===Object)void 0===e[r]&&(e[r]={}),e[r].constructor===Object?n(e[r],t[r]):e[r]=t[r];else{if(Array.isArray(t[r]))throw new TypeError(\"Arrays are not supported by deepExtend\");e[r]=t[r]}return e},t.deepEqual=function(e,r){var n,i,a;if(Array.isArray(e)){if(!Array.isArray(r))return!1;if(e.length!=r.length)return!1;for(i=0,a=e.length;a>i;i++)if(!t.deepEqual(e[i],r[i]))return!1;return!0}if(e instanceof Object){if(Array.isArray(r)||!(r instanceof Object))return!1;for(n in e)if(!t.deepEqual(e[n],r[n]))return!1;for(n in r)if(!t.deepEqual(e[n],r[n]))return!1;return!0}return typeof e==typeof r&&e==r},t.canDefineProperty=function(){try{if(Object.defineProperty)return Object.defineProperty({},\"x\",{get:function(){}}),!0}catch(e){}return!1},t.lazy=function(e,r,n){if(t.canDefineProperty()){var i,a=!0;Object.defineProperty(e,r,{get:function(){return a&&(i=n(),a=!1),i},set:function(e){i=e,a=!1},configurable:!0,enumerable:!0})}else e[r]=n()},t.traverse=function(e,t){var r=e;if(t)for(var n=t.split(\".\"),i=0;i<n.length;i++){var a=n[i];a in r||(r[a]={}),r=r[a]}return r},t.isFactory=function(e){return e&&\"function\"==typeof e.factory}},function(e,t,r){var n=r(5),i=r(6).digits,a=function(){return a=n.create,n};t.create=function(e){var t=a();return t.types=[{name:\"number\",test:function(e){return\"number\"==typeof e}},{name:\"Complex\",test:function(e){return e&&e.isComplex}},{name:\"BigNumber\",test:function(e){return e&&e.isBigNumber}},{name:\"Fraction\",test:function(e){return e&&e.isFraction}},{name:\"Unit\",test:function(e){return e&&e.isUnit}},{name:\"string\",test:function(e){return\"string\"==typeof e}},{name:\"Array\",test:Array.isArray},{name:\"Matrix\",test:function(e){return e&&e.isMatrix}},{name:\"DenseMatrix\",test:function(e){return e&&e.isDenseMatrix}},{name:\"SparseMatrix\",test:function(e){return e&&e.isSparseMatrix}},{name:\"ImmutableDenseMatrix\",test:function(e){return e&&e.isImmutableDenseMatrix}},{name:\"Range\",test:function(e){return e&&e.isRange}},{name:\"Index\",test:function(e){return e&&e.isIndex}},{name:\"boolean\",test:function(e){return\"boolean\"==typeof e}},{name:\"ResultSet\",test:function(e){return e&&e.isResultSet}},{name:\"Help\",test:function(e){return e&&e.isHelp}},{name:\"function\",test:function(e){return\"function\"==typeof e}},{name:\"Date\",test:function(e){return e instanceof Date}},{name:\"RegExp\",test:function(e){return e instanceof RegExp}},{name:\"Object\",test:function(e){return\"object\"==typeof e}},{name:\"null\",test:function(e){return null===e}},{name:\"undefined\",test:function(e){return void 0===e}}],t.conversions=[{from:\"number\",to:\"BigNumber\",convert:function(t){if(i(t)>15)throw new TypeError(\"Cannot implicitly convert a number with >15 significant digits to BigNumber (value: \"+t+\"). Use function bignumber(x) to convert to BigNumber.\");return new e.BigNumber(t)}},{from:\"number\",to:\"Complex\",convert:function(t){return new e.Complex(t,0)}},{from:\"number\",to:\"string\",convert:function(e){return e+\"\"}},{from:\"BigNumber\",to:\"Complex\",convert:function(t){return new e.Complex(t.toNumber(),0)}},{from:\"number\",to:\"Fraction\",convert:function(t){if(i(t)>15)throw new TypeError(\"Cannot implicitly convert a number with >15 significant digits to Fraction (value: \"+t+\"). Use function fraction(x) to convert to Fraction.\");return new e.Fraction(t)}},{from:\"string\",to:\"number\",convert:function(e){var t=Number(e);if(isNaN(t))throw new Error('Cannot convert \"'+e+'\" to a number');return t}},{from:\"boolean\",to:\"number\",convert:function(e){return+e}},{from:\"boolean\",to:\"BigNumber\",convert:function(t){return new e.BigNumber(+t)}},{from:\"boolean\",to:\"string\",convert:function(e){return+e}},{from:\"null\",to:\"number\",convert:function(){return 0}},{from:\"null\",to:\"string\",convert:function(){return\"null\"}},{from:\"null\",to:\"BigNumber\",convert:function(){return new e.BigNumber(0)}},{from:\"Array\",to:\"Matrix\",convert:function(t){return new e.DenseMatrix(t)}},{from:\"Matrix\",to:\"Array\",convert:function(e){return e.valueOf()}}],t}},function(e,t,r){var n,i,a;!function(r){i=[],n=r,a=\"function\"==typeof n?n.apply(t,i):n,!(void 0!==a&&(e.exports=a))}(function(){function e(){function t(e){for(var t,r=0;r<N.types.length;r++){var n=N.types[r];if(n.name===e){t=n.test;break}}if(!t){var i;for(r=0;r<N.types.length;r++)if(n=N.types[r],n.name.toLowerCase()==e.toLowerCase()){i=n.name;break}throw new Error('Unknown type \"'+e+'\"'+(i?'. Did you mean \"'+i+'\"?':\"\"))}return t}function r(e){for(var t=\"\",r=0;r<e.length;r++){var n=e[r];if(\"\"!=n.name)if(\"\"==t)t=n.name;else if(t!=n.name){var i=new Error(\"Function names do not match (expected: \"+t+\", actual: \"+n.name+\")\");throw i.data={actual:n.name,expected:t},i}}return t}function n(e,t,r,n,i){var a,o=h(n),s=i?i.split(\",\"):null,u=e||\"unnamed\",c=s&&g(s,\"any\"),f={fn:e,index:r,actual:n,expected:s};a=s?t>r&&!c?\"Unexpected type of argument in function \"+u+\" (expected: \"+s.join(\" or \")+\", actual: \"+o+\", index: \"+r+\")\":\"Too few arguments in function \"+u+\" (expected: \"+s.join(\" or \")+\", index: \"+r+\")\":\"Too many arguments in function \"+u+\" (expected: \"+r+\", actual: \"+t+\")\";var l=new TypeError(a);return l.data=f,l}function i(e){this.name=e||\"refs\",this.categories={}}function a(e,t){if(\"string\"==typeof e){var r=e.trim(),n=\"...\"===r.substr(0,3);if(n&&(r=r.substr(3)),\"\"===r)this.types=[\"any\"];else{this.types=r.split(\"|\");for(var i=0;i<this.types.length;i++)this.types[i]=this.types[i].trim()}}else{if(!Array.isArray(e)){if(e instanceof a)return e.clone();throw new Error(\"String or Array expected\")}this.types=e}this.conversions=[],this.varArgs=n||t||!1,this.anyType=-1!==this.types.indexOf(\"any\")}function o(e,t){var r;if(\"string\"==typeof e)r=\"\"!==e?e.split(\",\"):[];else{if(!Array.isArray(e))throw new Error(\"string or Array expected\");r=e}this.params=new Array(r.length);for(var n=0;n<r.length;n++){var i=new a(r[n]);if(this.params[n]=i,n===r.length-1)this.varArgs=i.varArgs;else if(i.varArgs)throw new SyntaxError('Unexpected variable arguments operator \"...\"')}this.fn=t}function s(e,t,r){this.path=e||[],this.param=e[e.length-1]||null,this.signature=t||null,this.childs=r||[]}function u(e){var t,r,n={},i=[];for(var a in e)if(e.hasOwnProperty(a)){var s=e[a];if(t=new o(a,s),t.ignore())continue;var u=t.expand();for(r=0;r<u.length;r++){var c=u[r],f=c.toString(),l=n[f];if(l){var p=o.compare(c,l);if(0>p)n[f]=c;else if(0===p)throw new Error('Signature \"'+f+'\" is defined twice')}else n[f]=c}}for(f in n)n.hasOwnProperty(f)&&i.push(n[f]);for(i.sort(function(e,t){return o.compare(e,t)}),r=0;r<i.length;r++)if(t=i[r],t.varArgs)for(var m=t.params.length-1,h=t.params[m],v=0;v<h.types.length;){if(h.conversions[v])for(var d=h.types[v],y=0;y<i.length;y++){var x=i[y],w=x.params[m];if(x!==t&&w&&g(w.types,d)&&!w.conversions[m]){h.types.splice(v,1),h.conversions.splice(v,1),v--;break}}v++}return i}function c(e){for(var t={},r=0;r<e.length;r++){var n=e[r];if(n.fn&&!n.hasConversions()){var i=n.params.join(\",\");t[i]=n.fn}}return t}function f(e,t){var r,n,i,o=t.length,u=[];for(r=0;r<e.length;r++)n=e[r],n.params.length!==o||i||(i=n),void 0!=n.params[o]&&u.push(n);u.sort(function(e,t){return a.compare(e.params[o],t.params[o])});var c=[];for(r=0;r<u.length;r++){n=u[r];var l=n.params[o],p=c.filter(function(e){return e.param.overlapping(l)})[0];if(p){if(p.param.varArgs)throw new Error('Conflicting types \"'+p.param+'\" and \"'+l+'\"');p.signatures.push(n)}else c.push({param:l,signatures:[n]})}var m=new Array(c.length);for(r=0;r<c.length;r++){var h=c[r];m[r]=f(h.signatures,t.concat(h.param))}return new s(t,i,m)}function l(e){for(var t=[],r=0;e>r;r++)t[r]=\"arg\"+r;return t}function p(e,t){var r=new i,a=u(t);if(0==a.length)throw new Error(\"No signatures provided\");var o=f(a,[]),s=[],p=e||\"\",h=l(m(a));s.push(\"function \"+p+\"(\"+h.join(\", \")+\") {\"),s.push(' \"use strict\";'),s.push(\" var name = '\"+p+\"';\"),s.push(o.toCode(r,\" \")),s.push(\"}\");var g=[r.toCode(),\"return \"+s.join(\"\\n\")].join(\"\\n\"),v=new Function(r.name,\"createError\",g),d=v(r,n);return d.signatures=c(a),d}function m(e){for(var t=0,r=0;r<e.length;r++){var n=e[r].params.length;n>t&&(t=n)}return t}function h(e){for(var t,r=0;r<N.types.length;r++){var n=N.types[r];if(\"Object\"===n.name)t=n;else if(n.test(e))return n.name}return t&&t.test(e)?t.name:\"unknown\"}function g(e,t){return-1!==e.indexOf(t)}function v(e,t){if(!e.signatures)throw new TypeError(\"Function is no typed-function\");var r;if(\"string\"==typeof t){r=t.split(\",\");for(var n=0;n<r.length;n++)r[n]=r[n].trim()}else{if(!Array.isArray(t))throw new TypeError(\"String array or a comma separated string expected\");r=t}var i=r.join(\",\"),a=e.signatures[i];if(a)return a;throw new TypeError(\"Signature not found (signature: \"+(e.name||\"unnamed\")+\"(\"+r.join(\", \")+\"))\")}function d(e,t){var r=h(e);if(t===r)return e;for(var n=0;n<N.conversions.length;n++){var i=N.conversions[n];if(i.from===r&&i.to===t)return i.convert(e)}throw new Error(\"Cannot convert from \"+r+\" to \"+t)}i.prototype.add=function(e,t){var r=t||\"fn\";this.categories[r]||(this.categories[r]=[]);var n=this.categories[r].indexOf(e);return-1==n&&(n=this.categories[r].length,this.categories[r].push(e)),r+n},i.prototype.toCode=function(){var e=[],t=this.name+\".categories\",r=this.categories;for(var n in r)if(r.hasOwnProperty(n))for(var i=r[n],a=0;a<i.length;a++)e.push(\"var \"+n+a+\" = \"+t+\"['\"+n+\"'][\"+a+\"];\");return e.join(\"\\n\")},a.compare=function(e,t){if(e.anyType)return 1;if(t.anyType)return-1;if(g(e.types,\"Object\"))return 1;if(g(t.types,\"Object\"))return-1;if(e.hasConversions()){if(t.hasConversions()){var r,n,i;for(r=0;r<e.conversions.length;r++)if(void 0!==e.conversions[r]){n=e.conversions[r];break}for(r=0;r<t.conversions.length;r++)if(void 0!==t.conversions[r]){i=t.conversions[r];break}return N.conversions.indexOf(n)-N.conversions.indexOf(i)}return 1}if(t.hasConversions())return-1;var a,o;for(r=0;r<N.types.length;r++)if(N.types[r].name===e.types[0]){a=r;break}for(r=0;r<N.types.length;r++)if(N.types[r].name===t.types[0]){o=r;break}return a-o},a.prototype.overlapping=function(e){for(var t=0;t<this.types.length;t++)if(g(e.types,this.types[t]))return!0;return!1},a.prototype.clone=function(){var e=new a(this.types.slice(),this.varArgs);return e.conversions=this.conversions.slice(),e},a.prototype.hasConversions=function(){return this.conversions.length>0},a.prototype.contains=function(e){for(var t=0;t<this.types.length;t++)if(e[this.types[t]])return!0;return!1},a.prototype.toString=function(e){for(var t=[],r={},n=0;n<this.types.length;n++){var i=this.conversions[n],a=e&&i?i.to:this.types[n];a in r||(r[a]=!0,t.push(a))}return(this.varArgs?\"...\":\"\")+t.join(\"|\")},o.prototype.clone=function(){return new o(this.params.slice(),this.fn)},o.prototype.expand=function(){function e(r,n){if(n.length<r.params.length){var i,s,u,c=r.params[n.length];if(c.varArgs){for(s=c.clone(),i=0;i<N.conversions.length;i++)if(u=N.conversions[i],!g(c.types,u.from)&&g(c.types,u.to)){var f=s.types.length;s.types[f]=u.from,s.conversions[f]=u}e(r,n.concat(s))}else{for(i=0;i<c.types.length;i++)e(r,n.concat(new a(c.types[i])));for(i=0;i<N.conversions.length;i++)u=N.conversions[i],!g(c.types,u.from)&&g(c.types,u.to)&&(s=new a(u.from),s.conversions[0]=u,e(r,n.concat(s)))}}else t.push(new o(n,r.fn))}var t=[];return e(this,[]),t},o.compare=function(e,t){if(e.params.length>t.params.length)return 1;if(e.params.length<t.params.length)return-1;var r,n=e.params.length,i=0,o=0;for(r=0;n>r;r++)e.params[r].hasConversions()&&i++,t.params[r].hasConversions()&&o++;if(i>o)return 1;if(o>i)return-1;for(r=0;r<e.params.length;r++){var s=a.compare(e.params[r],t.params[r]);if(0!==s)return s}return 0},o.prototype.hasConversions=function(){for(var e=0;e<this.params.length;e++)if(this.params[e].hasConversions())return!0;return!1},o.prototype.ignore=function(){for(var e={},t=0;t<N.ignore.length;t++)e[N.ignore[t]]=!0;for(t=0;t<this.params.length;t++)if(this.params[t].contains(e))return!0;return!1},o.prototype.toCode=function(e,t){for(var r=[],n=new Array(this.params.length),i=0;i<this.params.length;i++){var a=this.params[i],o=a.conversions[0];a.varArgs?n[i]=\"varArgs\":o?n[i]=e.add(o.convert,\"convert\")+\"(arg\"+i+\")\":n[i]=\"arg\"+i}var s=this.fn?e.add(this.fn,\"signature\"):void 0;return s?t+\"return \"+s+\"(\"+n.join(\", \")+\"); // signature: \"+this.params.join(\", \"):r.join(\"\\n\")},o.prototype.toString=function(){return this.params.join(\", \")},s.prototype.toCode=function(e,r,n){var i=[];if(this.param){var a=this.path.length-1,o=this.param.conversions[0],s=\"// type: \"+(o?o.from+\" (convert to \"+o.to+\")\":this.param);if(this.param.varArgs)if(this.param.anyType)i.push(r+\"if (arguments.length > \"+a+\") {\"),i.push(r+\" var varArgs = [];\"),i.push(r+\" for (var i = \"+a+\"; i < arguments.length; i++) {\"),i.push(r+\" varArgs.push(arguments[i]);\"),i.push(r+\" }\"),i.push(this.signature.toCode(e,r+\" \")),i.push(r+\"}\");else{for(var u=function(r,n){for(var i=[],a=0;a<r.length;a++)i[a]=e.add(t(r[a]),\"test\")+\"(\"+n+\")\";return i.join(\" || \")}.bind(this),c=this.param.types,f=[],l=0;l<c.length;l++)void 0===this.param.conversions[l]&&f.push(c[l]);i.push(r+\"if (\"+u(c,\"arg\"+a)+\") { \"+s),i.push(r+\" var varArgs = [arg\"+a+\"];\"),i.push(r+\" for (var i = \"+(a+1)+\"; i < arguments.length; i++) {\"),i.push(r+\" if (\"+u(f,\"arguments[i]\")+\") {\"),i.push(r+\" varArgs.push(arguments[i]);\");for(var l=0;l<c.length;l++){var p=this.param.conversions[l];if(p){var m=e.add(t(c[l]),\"test\"),h=e.add(p.convert,\"convert\");i.push(r+\" }\"),i.push(r+\" else if (\"+m+\"(arguments[i])) {\"),i.push(r+\" varArgs.push(\"+h+\"(arguments[i]));\")}}i.push(r+\" } else {\"),i.push(r+\" throw createError(name, arguments.length, i, arguments[i], '\"+f.join(\",\")+\"');\"),i.push(r+\" }\"),i.push(r+\" }\"),i.push(this.signature.toCode(e,r+\" \")),i.push(r+\"}\")}else if(this.param.anyType)i.push(r+\"// type: any\"),i.push(this._innerCode(e,r,n));else{var g=this.param.types[0],m=\"any\"!==g?e.add(t(g),\"test\"):null;i.push(r+\"if (\"+m+\"(arg\"+a+\")) { \"+s),i.push(this._innerCode(e,r+\" \",n)),i.push(r+\"}\")}}else i.push(this._innerCode(e,r,n));return i.join(\"\\n\")},s.prototype._innerCode=function(e,t,r){var n,i=[];this.signature&&(i.push(t+\"if (arguments.length === \"+this.path.length+\") {\"),i.push(this.signature.toCode(e,t+\" \")),i.push(t+\"}\"));var a;for(n=0;n<this.childs.length;n++)if(this.childs[n].param.anyType){a=this.childs[n];break}for(n=0;n<this.childs.length;n++)i.push(this.childs[n].toCode(e,t,a));r&&!this.param.anyType&&i.push(r.toCode(e,t,a));var o=this._exceptions(e,t);return o&&i.push(o),i.join(\"\\n\")},s.prototype._exceptions=function(e,t){var r=this.path.length;if(0===this.childs.length)return[t+\"if (arguments.length > \"+r+\") {\",t+\" throw createError(name, arguments.length, \"+r+\", arguments[\"+r+\"]);\",t+\"}\"].join(\"\\n\");for(var n={},i=[],a=0;a<this.childs.length;a++){var o=this.childs[a];if(o.param)for(var s=0;s<o.param.types.length;s++){var u=o.param.types[s];u in n||o.param.conversions[s]||(n[u]=!0,i.push(u))}}return t+\"throw createError(name, arguments.length, \"+r+\", arguments[\"+r+\"], '\"+i.join(\",\")+\"');\"};var y=[{name:\"number\",test:function(e){return\"number\"==typeof e}},{name:\"string\",test:function(e){return\"string\"==typeof e}},{name:\"boolean\",test:function(e){return\"boolean\"==typeof e}},{name:\"Function\",test:function(e){return\"function\"==typeof e}},{name:\"Array\",test:Array.isArray},{name:\"Date\",test:function(e){return e instanceof Date}},{name:\"RegExp\",test:function(e){return e instanceof RegExp}},{name:\"Object\",test:function(e){return\"object\"==typeof e}},{name:\"null\",test:function(e){return null===e}},{name:\"undefined\",test:function(e){return void 0===e}}],x={},w=[],b=[],N={config:x,types:y,conversions:w,ignore:b};return N=p(\"typed\",{Object:function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(e[n]);var i=r(t);return p(i,e)},\"string, Object\":p,\"...Function\":function(e){for(var t,n=r(e),i={},a=0;a<e.length;a++){var o=e[a];if(\"object\"!=typeof o.signatures)throw t=new TypeError(\"Function is no typed-function (index: \"+a+\")\"),t.data={index:a},t;for(var s in o.signatures)if(o.signatures.hasOwnProperty(s))if(i.hasOwnProperty(s)){if(o.signatures[s]!==i[s])throw t=new Error('Signature \"'+s+'\" is defined twice'),t.data={signature:s},t}else i[s]=o.signatures[s]}return p(n,i)}}),N.config=x,N.types=y,N.conversions=w,N.ignore=b,N.create=e,N.find=v,N.convert=d,N.addType=function(e){if(!e||\"string\"!=typeof e.name||\"function\"!=typeof e.test)throw new TypeError(\"Object with properties {name: string, test: function} expected\");N.types.push(e)},N.addConversion=function(e){if(!e||\"string\"!=typeof e.from||\"string\"!=typeof e.to||\"function\"!=typeof e.convert)throw new TypeError(\"Object with properties {from: string, to: string, convert: function} expected\");N.conversions.push(e)},N}return e()})},function(e,t,r){\"use strict\";var n=r(7);t.isNumber=function(e){return\"number\"==typeof e},t.isInteger=function(e){return isFinite(e)?e==Math.round(e):!1},t.sign=function(e){return e>0?1:0>e?-1:0},t.format=function(e,r){if(\"function\"==typeof r)return r(e);if(e===1/0)return\"Infinity\";if(e===-(1/0))return\"-Infinity\";if(isNaN(e))return\"NaN\";var n=\"auto\",i=void 0;switch(r&&(r.notation&&(n=r.notation),t.isNumber(r)?i=r:r.precision&&(i=r.precision)),n){case\"fixed\":return t.toFixed(e,i);case\"exponential\":return t.toExponential(e,i);case\"auto\":return t.toPrecision(e,i,r&&r.exponential).replace(/((\\.\\d*?)(0+))($|e)/,function(){var e=arguments[2],t=arguments[4];return\".\"!==e?e+t:t});default:throw new Error('Unknown notation \"'+n+'\". Choose \"auto\", \"exponential\", or \"fixed\".')}},t.toExponential=function(e,t){return new n(e).toExponential(t)},t.toFixed=function(e,t){return new n(e).toFixed(t)},t.toPrecision=function(e,t,r){return new n(e).toPrecision(t,r)},t.digits=function(e){return e.toExponential().replace(/e.*$/,\"\").replace(/^0\\.?0*|\\./,\"\").length},t.DBL_EPSILON=Number.EPSILON||2.220446049250313e-16,t.nearlyEqual=function(e,r,n){if(null==n)return e==r;if(e==r)return!0;if(isNaN(e)||isNaN(r))return!1;if(isFinite(e)&&isFinite(r)){var i=Math.abs(e-r);return i<t.DBL_EPSILON?!0:i<=Math.max(Math.abs(e),Math.abs(r))*n}return!1}},function(e,t){\"use strict\";function r(e){var t=String(e).toLowerCase().match(/^0*?(-?)(\\d+\\.?\\d*)(e([+-]?\\d+))?$/);if(!t)throw new SyntaxError(\"Invalid number\");var r=t[1],n=t[2],i=parseFloat(t[4]||\"0\"),a=n.indexOf(\".\");i+=-1!==a?a-1:n.length-1,this.sign=r,this.coefficients=n.replace(\".\",\"\").replace(/^0*/,function(e){return i-=e.length,\"\"}).replace(/0*$/,\"\").split(\"\").map(function(e){return parseInt(e)}),0===this.coefficients.length&&(this.coefficients.push(0),i++),this.exponent=i}function n(e){for(var t=[],r=0;e>r;r++)t.push(0);return t}r.prototype.toFixed=function(e){var t=this.roundDigits(this.exponent+1+(e||0)),r=t.coefficients,i=t.exponent+1,a=i+(e||0);return r.length<a&&(r=r.concat(n(a-r.length))),0>i&&(r=n(-i+1).concat(r),i=1),e&&r.splice(i,0,0===i?\"0.\":\".\"),this.sign+r.join(\"\")},r.prototype.toExponential=function(e){var t=e?this.roundDigits(e):this.clone(),r=t.coefficients,i=t.exponent;r.length<e&&(r=r.concat(n(e-r.length)));var a=r.shift();return this.sign+a+(r.length>0?\".\"+r.join(\"\"):\"\")+\"e\"+(i>=0?\"+\":\"\")+i},r.prototype.toPrecision=function(e,t){var r=t&&void 0!==t.lower?t.lower:.001,i=t&&void 0!==t.upper?t.upper:1e5,a=Math.abs(Math.pow(10,this.exponent));if(r>a||a>=i)return this.toExponential(e);var o=e?this.roundDigits(e):this.clone(),s=o.coefficients,u=o.exponent;s.length<e&&(s=s.concat(n(e-s.length))),s=s.concat(n(u-s.length+1+(s.length<e?e-s.length:0))),s=n(-u).concat(s);var c=u>0?u:0;return c<s.length-1&&s.splice(c+1,0,\".\"),this.sign+s.join(\"\")},r.prototype.clone=function(){var e=new r(\"0\");return e.sign=this.sign,e.coefficients=this.coefficients.slice(0),e.exponent=this.exponent,e},r.prototype.roundDigits=function(e){for(var t=this.clone(),r=t.coefficients;0>=e;)r.unshift(0),t.exponent++,e++;if(r.length>e){var n=r.splice(e);if(n[0]>=5){var i=e-1;for(r[i]++;10===r[i];)r.pop(),0===i&&(r.unshift(0),t.exponent++,i++),i--,r[i]++}}return t},e.exports=r},function(e,t,r){var n=r(9);t.mixin=function(e){var t=new n;return e.on=t.on.bind(t),e.off=t.off.bind(t),e.once=t.once.bind(t),e.emit=t.emit.bind(t),e}},function(e,t){function r(){}r.prototype={on:function(e,t,r){var n=this.e||(this.e={});return(n[e]||(n[e]=[])).push({fn:t,ctx:r}),this},once:function(e,t,r){var n=this,i=function(){n.off(e,i),t.apply(r,arguments)};return this.on(e,i,r)},emit:function(e){var t=[].slice.call(arguments,1),r=((this.e||(this.e={}))[e]||[]).slice(),n=0,i=r.length;for(n;i>n;n++)r[n].fn.apply(r[n].ctx,t);return this},off:function(e,t){var r=this.e||(this.e={}),n=r[e],i=[];if(n&&t)for(var a=0,o=n.length;o>a;a++)n[a].fn!==t&&i.push(n[a]);return i.length?r[e]=i:delete r[e],this}},e.exports=r},function(e,t,r){\"use strict\";function n(e,t,r,n,u){function c(e,t){var r=arguments.length;if(1!=r&&2!=r)throw new s(\"import\",r,1,2);if(t||(t={}),a(e))m(e,t);else if(Array.isArray(e))e.forEach(function(e){c(e,t)});else if(\"object\"==typeof e){for(var n in e)if(e.hasOwnProperty(n)){var i=e[n];h(i)?f(n,i,t):a(e)?m(e,t):c(i,t)}}else if(!t.silent)throw new TypeError(\"Factory, Object, or Array expected\")}function f(e,t,r){if(r.wrap&&\"function\"==typeof t&&(t=p(t)),g(u[e])&&g(t))return t=r.override?n(e,t.signatures):n(u[e],t),u[e]=t,l(e,t),void u.emit(\"import\",e,function(){return t});if(void 0===u[e]||r.override)return u[e]=t,l(e,t),void u.emit(\"import\",e,function(){return t});if(!r.silent)throw new Error('Cannot import \"'+e+'\": already exists')}function l(e,t){t&&\"function\"==typeof t.transform&&(u.expression.transform[e]=t.transform)}function p(e){var t=function(){for(var t=[],r=0,n=arguments.length;n>r;r++){var i=arguments[r];t[r]=i&&i.valueOf()}return e.apply(u,t)};return e.transform&&(t.transform=e.transform),t}function m(e,t){if(\"string\"==typeof e.name){var a=e.name,s=e.path?o(u,e.path):u,c=s.hasOwnProperty(a)?s[a]:void 0,f=function(){var i=r(e);if(g(c)&&g(i))return t.override||(i=n(c,i)),i;if(void 0===c||t.override)return i;if(!t.silent)throw new Error('Cannot import \"'+a+'\": already exists')};e.lazy!==!1?i(s,a,f):s[a]=f(),u.emit(\"import\",a,f,e.path)}else r(e)}function h(e){return\"function\"==typeof e||\"number\"==typeof e||\"string\"==typeof e||\"boolean\"==typeof e||null===e||e&&e.isUnit===!0||e&&e.isComplex===!0}function g(e){return\"function\"==typeof e&&\"object\"==typeof e.signatures}return c}var i=r(3).lazy,a=r(3).isFactory,o=r(3).traverse,s=(r(3).extend,r(11));t.math=!0,t.name=\"import\",t.factory=n,t.lazy=!0},function(e,t){\"use strict\";function r(e,t,n,i){if(!(this instanceof r))throw new SyntaxError(\"Constructor must be called with the new operator\");this.fn=e,this.count=t,this.min=n,this.max=i,this.message=\"Wrong number of arguments in function \"+e+\" (\"+t+\" provided, \"+n+(void 0!=i?\"-\"+i:\"\")+\" expected)\",this.stack=(new Error).stack}r.prototype=new Error,r.prototype.constructor=Error,r.prototype.name=\"ArgumentsError\",r.prototype.isArgumentsError=!0,e.exports=r},function(e,t,r){\"use strict\";function n(e,t,r,n,a){return function(e){if(e){var r=i.clone(t);i.deepExtend(t,e);var n=i.clone(t);return a.emit(\"config\",n,r),n}return i.clone(t)}}var i=r(3);t.name=\"config\",t.math=!0,t.factory=n},function(e,t,r){e.exports=[r(14),r(76),r(80),r(312),r(495),r(497)]},function(e,t,r){e.exports=[r(15),r(20),r(21),r(26),r(31),r(37),r(69),r(70),r(72),r(73)]},function(e,t,r){e.exports=[r(16),r(18)]},function(e,t,r){function n(e,t,r,n,a){var o=i.constructor(t);return o.prototype.type=\"BigNumber\",o.prototype.isBigNumber=!0,o.prototype.toJSON=function(){return{mathjs:\"BigNumber\",value:this.toString()}},o.fromJSON=function(e){return new o(e.value)},a.on(\"config\",function(e,t){e.precision!==t.precision&&o.config({precision:e.precision})}),o}var i=r(17);r(6).digits;t.name=\"BigNumber\",t.path=\"type\",t.factory=n,t.math=!0},function(e,t,r){var n;!function(i){\"use strict\";function a(e){for(var t,r,n=1,i=e.length,a=e[0]+\"\";i>n;n++){for(t=e[n]+\"\",r=_-t.length;r--;)t=\"0\"+t;a+=t}for(i=a.length;48===a.charCodeAt(--i););return a.slice(0,i+1||1)}function o(e,t,r,n){var i,a,o,s,u;for(a=1,o=e[0];o>=10;o/=10,a++);return o=t-a,0>o?(o+=_,i=0):(i=Math.ceil((o+1)/_),o%=_),a=E(10,_-o),u=e[i]%a|0,null==n?3>o?(0==o?u=u/100|0:1==o&&(u=u/10|0),s=4>r&&99999==u||r>3&&49999==u||5e4==u||0==u):s=(4>r&&u+1==a||r>3&&u+1==a/2)&&(e[i+1]/a/100|0)==E(10,o-2)-1||(u==a/2||0==u)&&0==(e[i+1]/a/100|0):4>o?(0==o?u=u/1e3|0:1==o?u=u/100|0:2==o&&(u=u/10|0),s=(n||4>r)&&9999==u||!n&&r>3&&4999==u):s=((n||4>r)&&u+1==a||!n&&r>3&&u+1==a/2)&&(e[i+1]/a/1e3|0)==E(10,o-3)-1,s}function s(e,t,r){var n=e.constructor;return null==t||((y=0>t||t>8)||0!==t&&(n.errors?parseInt:parseFloat)(t)!=t)&&!p(n,\"rounding mode\",t,r,0)?n.rounding:0|t}function u(e,t,r,n){var i=e.constructor;return!(y=(n||0)>t||t>=S+1)&&(0===t||(i.errors?parseInt:parseFloat)(t)==t)||p(i,\"argument\",t,r,0)}function c(e,t){var r,n,i,s,u,c,f,l=0,p=0,m=0,h=e.constructor,v=h.ONE,d=h.rounding,y=h.precision;if(!e.c||!e.c[0]||e.e>17)return new h(e.c?e.c[0]?e.s<0?0:1/0:v:e.s?e.s<0?0:e:NaN);for(null==t?(w=!1,u=y):u=t,f=new h(.03125);e.e>-2;)e=e.times(f),m+=5;for(n=Math.log(E(2,m))/Math.LN10*2+5|0,u+=n,r=s=c=new h(v),h.precision=u;;){if(s=g(s.times(e),u,1),r=r.times(++p),f=c.plus(k(s,r,u,1)),a(f.c).slice(0,u)===a(c.c).slice(0,u)){for(i=m;i--;)c=g(c.times(c),u,1);if(null!=t)return h.precision=y,c;if(!(3>l&&o(c.c,u-n,d,l)))return g(c,h.precision=y,d,w=!0);h.precision=u+=10,r=s=f=new h(v),p=0,l++}c=f}}function f(e,t,r,n){var i,o,s=e.constructor,u=(e=new s(e)).e;if(null==t?r=0:(g(e,++t,r),r=n?t:t+e.e-u),u=e.e,i=a(e.c),1==n||2==n&&(u>=t||u<=s.toExpNeg)){for(;i.length<r;i+=\"0\");i.length>1&&(i=i.charAt(0)+\".\"+i.slice(1)),i+=(0>u?\"e\":\"e+\")+u}else{if(n=i.length,0>u){for(o=r-n;++u;i=\"0\"+i);i=\"0.\"+i}else if(++u>n){for(o=r-u,u-=n;u--;i+=\"0\");o>0&&(i+=\".\")}else o=r-n,n>u?i=i.slice(0,u)+\".\"+i.slice(u):o>0&&(i+=\".\");if(o>0)for(;o--;i+=\"0\");}return e.s<0&&e.c[0]?\"-\"+i:i}function l(e){var t=e.length-1,r=t*_+1;if(t=e[t]){for(;t%10==0;t/=10,r--);for(t=e[0];t>=10;t/=10,r++);}return r}function p(e,t,r,n,i){if(e.errors){var a=new Error((n||[\"new Decimal\",\"cmp\",\"div\",\"eq\",\"gt\",\"gte\",\"lt\",\"lte\",\"minus\",\"mod\",\"plus\",\"times\",\"toFraction\",\"pow\",\"random\",\"log\",\"sqrt\",\"toNearest\",\"divToInt\"][b?0>b?-b:b:0>1/b?1:0])+\"() \"+([\"number type has more than 15 significant digits\",\"LN10 out of digits\"][t]||t+([y?\" out of range\":\" not an integer\",\" not a boolean or binary digit\"][i]||\"\"))+\": \"+r);throw a.name=\"Decimal Error\",y=b=0,a}}function m(e,t,r){var n=new e(e.ONE);for(w=!1;1&r&&(n=n.times(t)),r>>=1,r;)t=t.times(t);return w=!0,n}function h(e,t){var r,n,i,s,u,c,f,l,m,v,d,y=1,x=10,b=e,N=b.c,E=b.constructor,M=E.ONE,A=E.rounding,_=E.precision;if(b.s<0||!N||!N[0]||!b.e&&1==N[0]&&1==N.length)return new E(N&&!N[0]?-1/0:1!=b.s?NaN:N?0:b);if(null==t?(w=!1,f=_):f=t,E.precision=f+=x,r=a(N),n=r.charAt(0),!(Math.abs(s=b.e)<15e14))return b=new E(n+\".\"+r.slice(1)),f+2>B.length&&p(E,1,f+2,\"ln\"),b=h(b,f-x).plus(new E(B.slice(0,f+2)).times(s+\"\")),E.precision=_,null==t?g(b,_,A,w=!0):b;for(;7>n&&1!=n||1==n&&r.charAt(1)>3;)b=b.times(e),r=a(b.c),n=r.charAt(0),y++;for(s=b.e,n>1?(b=new E(\"0.\"+r),s++):b=new E(n+\".\"+r.slice(1)),v=b,l=u=b=k(b.minus(M),b.plus(M),f,1),d=g(b.times(b),f,1),i=3;;){if(u=g(u.times(d),f,1),m=l.plus(k(u,new E(i),f,1)),a(m.c).slice(0,f)===a(l.c).slice(0,f)){if(l=l.times(2),0!==s&&(f+2>B.length&&p(E,1,f+2,\"ln\"),l=l.plus(new E(B.slice(0,f+2)).times(s+\"\"))),l=k(l,new E(y),f,1),null!=t)return E.precision=_,l;if(!o(l.c,f-x,A,c))return g(l,E.precision=_,A,w=!0);E.precision=f+=x,m=u=b=k(v.minus(M),v.plus(M),f,1),d=g(b.times(b),f,1),i=c=1}l=m,i+=2}}function g(e,t,r,n){var i,a,o,s,u,c,f,l,p=e.constructor;e:if(null!=t){if(!(f=e.c))return e;for(i=1,s=f[0];s>=10;s/=10,i++);if(a=t-i,0>a)a+=_,o=t,u=f[l=0],c=u/E(10,i-o-1)%10|0;else if(l=Math.ceil((a+1)/_),l>=f.length){if(!n)break e;for(;f.length<=l;f.push(0));u=c=0,i=1,a%=_,o=a-_+1}else{for(u=s=f[l],i=1;s>=10;s/=10,i++);a%=_,o=a-_+i,c=0>o?0:N(u/E(10,i-o-1)%10)}if(n=n||0>t||null!=f[l+1]||(0>o?u:u%E(10,i-o-1)),n=4>r?(c||n)&&(0==r||r==(e.s<0?3:2)):c>5||5==c&&(4==r||n||6==r&&(a>0?o>0?u/E(10,i-o):0:f[l-1])%10&1||r==(e.s<0?8:7)),1>t||!f[0])return f.length=0,n?(t-=e.e+1,f[0]=E(10,(_-t%_)%_),e.e=-t||0):f[0]=e.e=0,e;if(0==a?(f.length=l,s=1,l--):(f.length=l+1,s=E(10,_-a),f[l]=o>0?(u/E(10,i-o)%E(10,o)|0)*s:0),n)for(;;){if(0==l){for(a=1,o=f[0];o>=10;o/=10,a++);for(o=f[0]+=s,s=1;o>=10;o/=10,s++);a!=s&&(e.e++,f[0]==A&&(f[0]=1));break}if(f[l]+=s,f[l]!=A)break;f[l--]=0,s=1}for(a=f.length;0===f[--a];f.pop());}return w&&(e.e>p.maxE?e.c=e.e=null:e.e<p.minE&&(e.c=[e.e=0])),e}var v,d,y,x=i.crypto,w=!0,b=0,N=Math.floor,E=Math.pow,M=Object.prototype.toString,A=1e7,_=7,O=\"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_\",T={},C=9e15,S=1e9,z=3e3,B=\"2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058\";T.absoluteValue=T.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),g(e)},T.ceil=function(){return g(new this.constructor(this),this.e+1,2)},T.comparedTo=T.cmp=function(e,t){var r,n=this,i=n.c,a=(b=-b,e=new n.constructor(e,t),\ne.c),o=n.s,s=e.s,u=n.e,c=e.e;if(!o||!s)return null;if(r=i&&!i[0],t=a&&!a[0],r||t)return r?t?0:-s:o;if(o!=s)return o;if(r=0>o,!i||!a)return u==c?0:!i^r?1:-1;if(u!=c)return u>c^r?1:-1;for(o=-1,s=(u=i.length)<(c=a.length)?u:c;++o<s;)if(i[o]!=a[o])return i[o]>a[o]^r?1:-1;return u==c?0:u>c^r?1:-1},T.decimalPlaces=T.dp=function(){var e,t,r=null;if(e=this.c){if(r=((t=e.length-1)-N(this.e/_))*_,t=e[t])for(;t%10==0;t/=10,r--);0>r&&(r=0)}return r},T.dividedBy=T.div=function(e,t){return b=2,k(this,new this.constructor(e,t))},T.dividedToIntegerBy=T.divToInt=function(e,t){var r=this,n=r.constructor;return b=18,g(k(r,new n(e,t),0,1,1),n.precision,n.rounding)},T.equals=T.eq=function(e,t){return b=3,0===this.cmp(e,t)},T.exponential=T.exp=function(){return c(this)},T.floor=function(){return g(new this.constructor(this),this.e+1,3)},T.greaterThan=T.gt=function(e,t){return b=4,this.cmp(e,t)>0},T.greaterThanOrEqualTo=T.gte=function(e,t){return b=5,t=this.cmp(e,t),1==t||0===t},T.isFinite=function(){return!!this.c},T.isInteger=T.isInt=function(){return!!this.c&&N(this.e/_)>this.c.length-2},T.isNaN=function(){return!this.s},T.isNegative=T.isNeg=function(){return this.s<0},T.isZero=function(){return!!this.c&&0==this.c[0]},T.lessThan=T.lt=function(e,t){return b=6,this.cmp(e,t)<0},T.lessThanOrEqualTo=T.lte=function(e,t){return b=7,t=this.cmp(e,t),-1==t||0===t},T.logarithm=T.log=function(e,t){var r,n,i,s,u,c,f,l,m,v=this,d=v.constructor,y=d.precision,x=d.rounding,N=5;if(null==e)e=new d(10),r=!0;else{if(b=15,e=new d(e,t),n=e.c,e.s<0||!n||!n[0]||!e.e&&1==n[0]&&1==n.length)return new d(NaN);r=e.eq(10)}if(n=v.c,v.s<0||!n||!n[0]||!v.e&&1==n[0]&&1==n.length)return new d(n&&!n[0]?-1/0:1!=v.s?NaN:n?0:1/0);if(u=r&&(s=n[0],n.length>1||1!=s&&10!=s&&100!=s&&1e3!=s&&1e4!=s&&1e5!=s&&1e6!=s),w=!1,f=y+N,l=f+10,c=h(v,f),r?(l>B.length&&p(d,1,l,\"log\"),i=new d(B.slice(0,l))):i=h(e,f),m=k(c,i,f,1),o(m.c,s=y,x))do if(f+=10,c=h(v,f),r?(l=f+10,l>B.length&&p(d,1,l,\"log\"),i=new d(B.slice(0,l))):i=h(e,f),m=k(c,i,f,1),!u){+a(m.c).slice(s+1,s+15)+1==1e14&&(m=g(m,y+1,0));break}while(o(m.c,s+=10,x));return w=!0,g(m,y,x)},T.minus=function(e,t){var r,n,i,a,o=this,s=o.constructor,u=o.s;if(b=8,e=new s(e,t),t=e.s,!u||!t)return new s(NaN);if(u!=t)return e.s=-t,o.plus(e);var c=o.c,f=e.c,l=N(e.e/_),p=N(o.e/_),m=s.precision,h=s.rounding;if(!p||!l){if(!c||!f)return c?(e.s=-t,e):new s(f?o:NaN);if(!c[0]||!f[0])return o=f[0]?(e.s=-t,e):new s(c[0]?o:3==h?-0:0),w?g(o,m,h):o}if(c=c.slice(),n=c.length,u=p-l){for((a=0>u)?(u=-u,r=c,n=f.length):(l=p,r=f),(p=Math.ceil(m/_))>n&&(n=p),u>(n+=2)&&(u=n,r.length=1),r.reverse(),t=u;t--;r.push(0));r.reverse()}else for((a=n<(i=f.length))&&(i=n),u=t=0;i>t;t++)if(c[t]!=f[t]){a=c[t]<f[t];break}if(a&&(r=c,c=f,f=r,e.s=-e.s),(t=-((i=c.length)-f.length))>0)for(;t--;c[i++]=0);for(p=A-1,t=f.length;t>u;){if(c[--t]<f[t]){for(n=t;n&&!c[--n];c[n]=p);--c[n],c[t]+=A}c[t]-=f[t]}for(;0==c[--i];c.pop());for(;0==c[0];c.shift(),--l);for(c[0]||(c=[l=0],e.s=3==h?-1:1),e.c=c,u=1,t=c[0];t>=10;t/=10,u++);return e.e=u+l*_-1,w?g(e,m,h):e},T.modulo=T.mod=function(e,t){var r,n,i=this,a=i.constructor,o=a.modulo;return b=9,e=new a(e,t),t=e.s,r=!i.c||!t||e.c&&!e.c[0],r||!e.c||i.c&&!i.c[0]?r?new a(NaN):g(new a(i),a.precision,a.rounding):(w=!1,9==o?(e.s=1,n=k(i,e,0,3,1),e.s=t,n.s*=t):n=k(i,e,0,o,1),n=n.times(e),w=!0,i.minus(n))},T.naturalLogarithm=T.ln=function(){return h(this)},T.negated=T.neg=function(){var e=new this.constructor(this);return e.s=-e.s||null,g(e)},T.plus=function(e,t){var r,n=this,i=n.constructor,a=n.s;if(b=10,e=new i(e,t),t=e.s,!a||!t)return new i(NaN);if(a!=t)return e.s=-t,n.minus(e);var o=n.c,s=e.c,u=N(e.e/_),c=N(n.e/_),f=i.precision,l=i.rounding;if(!c||!u){if(!o||!s)return new i(a/0);if(!o[0]||!s[0])return n=s[0]?e:new i(o[0]?n:0*a),w?g(n,f,l):n}if(o=o.slice(),a=c-u){for(0>a?(a=-a,r=o,t=s.length):(u=c,r=s,t=o.length),(c=Math.ceil(f/_))>t&&(t=c),a>++t&&(a=t,r.length=1),r.reverse();a--;r.push(0));r.reverse()}for(o.length-s.length<0&&(r=s,s=o,o=r),a=s.length,t=0,c=A;a;o[a]%=c)t=(o[--a]=o[a]+s[a]+t)/c|0;for(t&&(o.unshift(t),++u),a=o.length;0==o[--a];o.pop());for(e.c=o,a=1,t=o[0];t>=10;t/=10,a++);return e.e=a+u*_-1,w?g(e,f,l):e},T.precision=T.sd=function(e){var t=null,r=this;return e!=t&&e!==!!e&&1!==e&&0!==e&&p(r.constructor,\"argument\",e,\"precision\",1),r.c&&(t=l(r.c),e&&r.e+1>t&&(t=r.e+1)),t},T.round=function(){var e=this,t=e.constructor;return g(new t(e),e.e+1,t.rounding)},T.squareRoot=T.sqrt=function(){var e,t,r,n,i,o,s=this,u=s.c,c=s.s,f=s.e,l=s.constructor,p=new l(.5);if(1!==c||!u||!u[0])return new l(!c||0>c&&(!u||u[0])?NaN:u?s:1/0);for(w=!1,c=Math.sqrt(+s),0==c||c==1/0?(t=a(u),(t.length+f)%2==0&&(t+=\"0\"),c=Math.sqrt(t),f=N((f+1)/2)-(0>f||f%2),c==1/0?t=\"1e\"+f:(t=c.toExponential(),t=t.slice(0,t.indexOf(\"e\")+1)+f),n=new l(t)):n=new l(c.toString()),r=(f=l.precision)+3;;)if(o=n,n=p.times(o.plus(k(s,o,r+2,1))),a(o.c).slice(0,r)===(t=a(n.c)).slice(0,r)){if(t=t.slice(r-3,r+1),\"9999\"!=t&&(i||\"4999\"!=t)){(!+t||!+t.slice(1)&&\"5\"==t.charAt(0))&&(g(n,f+1,1),e=!n.times(n).eq(s));break}if(!i&&(g(o,f+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}return w=!0,g(n,f,l.rounding,e)},T.times=function(e,t){var r,n,i=this,a=i.constructor,o=i.c,s=(b=11,e=new a(e,t),e.c),u=N(i.e/_),c=N(e.e/_),f=i.s;if(t=e.s,e.s=f==t?1:-1,!((u||o&&o[0])&&(c||s&&s[0])))return new a(!f||!t||o&&!o[0]&&!s||s&&!s[0]&&!o?NaN:o&&s?0*e.s:e.s/0);for(n=u+c,f=o.length,t=s.length,t>f&&(r=o,o=s,s=r,c=f,f=t,t=c),c=f+t,r=[];c--;r.push(0));for(u=t-1;u>-1;u--){for(t=0,c=f+u;c>u;)t=r[c]+s[u]*o[c-u-1]+t,r[c--]=t%A|0,t=t/A|0;r[c]=(r[c]+t)%A|0}for(t?++n:r[0]||r.shift(),c=r.length;!r[--c];r.pop());for(e.c=r,f=1,t=r[0];t>=10;t/=10,f++);return e.e=f+n*_-1,w?g(e,a.precision,a.rounding):e},T.toDecimalPlaces=T.toDP=function(e,t){var r=this;return r=new r.constructor(r),null!=e&&u(r,e,\"toDP\")?g(r,(0|e)+r.e+1,s(r,t,\"toDP\")):r},T.toExponential=function(e,t){var r=this;return r.c?f(r,null!=e&&u(r,e,\"toExponential\")?0|e:null,null!=e&&s(r,t,\"toExponential\"),1):r.toString()},T.toFixed=function(e,t){var r,n=this,i=n.constructor,a=i.toExpNeg,o=i.toExpPos;return null!=e&&(e=u(n,e,r=\"toFixed\")?n.e+(0|e):null,t=s(n,t,r)),i.toExpNeg=-(i.toExpPos=1/0),null!=e&&n.c?(r=f(n,e,t),n.s<0&&n.c&&(n.c[0]?r.indexOf(\"-\")<0&&(r=\"-\"+r):r=r.replace(\"-\",\"\"))):r=n.toString(),i.toExpNeg=a,i.toExpPos=o,r},T.toFormat=function(e,t){var r=this;if(!r.c)return r.toString();var n,i=r.s<0,a=r.constructor.format,o=a.groupSeparator,s=+a.groupSize,u=+a.secondaryGroupSize,c=r.toFixed(e,t).split(\".\"),f=c[0],l=c[1],p=i?f.slice(1):f,m=p.length;if(u&&(n=s,s=u,m-=u=n),s>0&&m>0){for(n=m%s||s,f=p.substr(0,n);m>n;n+=s)f+=o+p.substr(n,s);u>0&&(f+=o+p.slice(n)),i&&(f=\"-\"+f)}return l?f+a.decimalSeparator+((u=+a.fractionGroupSize)?l.replace(new RegExp(\"\\\\d{\"+u+\"}\\\\B\",\"g\"),\"$&\"+a.fractionGroupSeparator):l):f},T.toFraction=function(e){var t,r,n,i,o,s,u,c,f=this,m=f.constructor,h=t=new m(m.ONE),g=s=new m(0),v=f.c,d=new m(g);if(!v)return f.toString();for(n=d.e=l(v)-f.e-1,d.c[0]=E(10,(u=n%_)<0?_+u:u),(null==e||(!(b=12,o=new m(e)).s||(y=o.cmp(h)<0||!o.c)||m.errors&&N(o.e/_)<o.c.length-1)&&!p(m,\"max denominator\",e,\"toFraction\",0)||(e=o).cmp(d)>0)&&(e=n>0?d:h),w=!1,o=new m(a(v)),u=m.precision,m.precision=n=v.length*_*2;c=k(o,d,0,1,1),r=t.plus(c.times(g)),1!=r.cmp(e);)t=g,g=r,h=s.plus(c.times(r=h)),s=r,d=o.minus(c.times(r=d)),o=r;return r=k(e.minus(t),g,0,1,1),s=s.plus(r.times(h)),t=t.plus(r.times(g)),s.s=h.s=f.s,i=k(h,g,n,1).minus(f).abs().cmp(k(s,t,n,1).minus(f).abs())<1?[h+\"\",g+\"\"]:[s+\"\",t+\"\"],w=!0,m.precision=u,i},T.toNearest=function(e,t){var r=this,n=r.constructor;return r=new n(r),null==e?(e=new n(n.ONE),t=n.rounding):(b=17,e=new n(e),t=s(r,t,\"toNearest\")),e.c?r.c&&(e.c[0]?(w=!1,r=k(r,e,0,4>t?[4,5,7,8][t]:t,1).times(e),w=!0,g(r)):r.c=[r.e=0]):r.s&&(e.s&&(e.s=r.s),r=e),r},T.toNumber=function(){var e=this;return+e||(e.s?0*e.s:NaN)},T.toPower=T.pow=function(e,t){var r,n,i,s,u=this,f=u.constructor,l=u.s,p=(b=13,+(e=new f(e,t))),v=0>p?-p:p,d=f.precision,y=f.rounding;if(!u.c||!e.c||(i=!u.c[0])||!e.c[0])return new f(E(i?0*l:+u,p));if(u=new f(u),r=u.c.length,!u.e&&u.c[0]==u.s&&1==r)return u;if(t=e.c.length-1,e.e||e.c[0]!=e.s||t)if(n=N(e.e/_),i=n>=t,!i&&0>l)s=new f(NaN);else{if(i&&z>r*_*v){if(s=m(f,u,v),e.s<0)return f.ONE.div(s)}else{if(l=0>l&&1&e.c[Math.max(n,t)]?-1:1,t=E(+u,p),n=0!=t&&isFinite(t)?new f(t+\"\").e:N(p*(Math.log(\"0.\"+a(u.c))/Math.LN10+u.e+1)),n>f.maxE+1||n<f.minE-1)return new f(n>0?l/0:0);w=!1,f.rounding=u.s=1,v=Math.min(12,(n+\"\").length),s=c(e.times(h(u,d+v)),d),s=g(s,d+5,1),o(s.c,d,y)&&(n=d+10,s=g(c(e.times(h(u,n+v)),n),n+5,1),+a(s.c).slice(d+1,d+15)+1==1e14&&(s=g(s,d+1,0))),s.s=l,w=!0,f.rounding=y}s=g(s,d,y)}else s=g(u,d,y);return s},T.toPrecision=function(e,t){var r=this;return null!=e&&u(r,e,\"toPrecision\",1)&&r.c?f(r,0|--e,s(r,t,\"toPrecision\"),2):r.toString()},T.toSignificantDigits=T.toSD=function(e,t){var r=this,n=r.constructor;return r=new n(r),null!=e&&u(r,e,\"toSD\",1)?g(r,0|e,s(r,t,\"toSD\")):g(r,n.precision,n.rounding)},T.toString=function(e){var t,r,n,i=this,o=i.constructor,s=i.e;if(null===s)r=i.s?\"Infinity\":\"NaN\";else{if(e===t&&(s<=o.toExpNeg||s>=o.toExpPos))return f(i,null,o.rounding,1);if(r=a(i.c),0>s){for(;++s;r=\"0\"+r);r=\"0.\"+r}else if(n=r.length,s>0)if(++s>n)for(s-=n;s--;r+=\"0\");else n>s&&(r=r.slice(0,s)+\".\"+r.slice(s));else if(t=r.charAt(0),n>1)r=t+\".\"+r.slice(1);else if(\"0\"==t)return t;if(null!=e)if((y=!(e>=2&&65>e))||e!=(0|e)&&o.errors)p(o,\"base\",e,\"toString\",0);else if(r=v(o,r,0|e,10,i.s),\"0\"==r)return r}return i.s<0?\"-\"+r:r},T.truncated=T.trunc=function(){return g(new this.constructor(this),this.e+1,1)},T.valueOf=T.toJSON=function(){return this.toString()},v=function(){function e(e,t,r){for(var n,i,a=[0],o=0,s=e.length;s>o;){for(i=a.length;i--;a[i]*=t);for(a[n=0]+=O.indexOf(e.charAt(o++));n<a.length;n++)a[n]>r-1&&(null==a[n+1]&&(a[n+1]=0),a[n+1]+=a[n]/r|0,a[n]%=r)}return a.reverse()}return function(t,r,n,i,a){var o,s,u,c,f,l,p=r.indexOf(\".\"),h=t.precision,g=t.rounding;for(37>i&&(r=r.toLowerCase()),p>=0&&(r=r.replace(\".\",\"\"),l=new t(i),c=m(t,l,r.length-p),l.c=e(c.toFixed(),10,n),l.e=l.c.length),f=e(r,i,n),o=s=f.length;0==f[--s];f.pop());if(!f[0])return\"0\";if(0>p?o--:(c.c=f,c.e=o,c.s=a,c=k(c,l,h,g,0,n),f=c.c,u=c.r,o=c.e),p=f[h],s=n/2,u=u||null!=f[h+1],4>g?(null!=p||u)&&(0==g||g==(0>a?3:2)):p>s||p==s&&(4==g||u||6==g&&1&f[h-1]||g==(0>a?8:7)))for(f.length=h,--n;++f[--h]>n;)f[h]=0,h||(++o,f.unshift(1));else f.length=h;for(s=f.length;!f[--s];);for(p=0,r=\"\";s>=p;r+=O.charAt(f[p++]));if(0>o){for(;++o;r=\"0\"+r);r=\"0.\"+r}else if(p=r.length,++o>p)for(o-=p;o--;r+=\"0\");else p>o&&(r=r.slice(0,o)+\".\"+r.slice(o));return r}}();var k=function(){function e(e,t,r){var n,i=0,a=e.length;for(e=e.slice();a--;)n=e[a]*t+i,e[a]=n%r|0,i=n/r|0;return i&&e.unshift(i),e}function t(e,t,r,n){var i,a;if(r!=n)a=r>n?1:-1;else for(i=a=0;r>i;i++)if(e[i]!=t[i]){a=e[i]>t[i]?1:-1;break}return a}function r(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=e[r]<t[r]?1:0,e[r]=i*n+e[r]-t[r];for(;!e[0]&&e.length>1;e.shift());}return function(n,i,a,o,s,u){var c,f,l,p,m,h,v,d,y,x,w,b,E,M,O,T,C,S,z,B=n.constructor,k=n.s==i.s?1:-1,I=n.c,R=i.c;if(!(I&&I[0]&&R&&R[0]))return new B(n.s&&i.s&&(I?!R||I[0]!=R[0]:R)?I&&0==I[0]||!R?0*k:k/0:NaN);for(u?(p=1,f=n.e-i.e):(u=A,p=_,f=N(n.e/p)-N(i.e/p)),S=R.length,T=I.length,y=new B(k),x=y.c=[],l=0;R[l]==(I[l]||0);l++);if(R[l]>(I[l]||0)&&f--,null==a?(k=a=B.precision,o=B.rounding):k=s?a+(n.e-i.e)+1:a,0>k)x.push(1),m=!0;else{if(k=k/p+2|0,l=0,1==S){for(h=0,R=R[0],k++;(T>l||h)&&k--;l++)M=h*u+(I[l]||0),x[l]=M/R|0,h=M%R|0;m=h||T>l}else{for(h=u/(R[0]+1)|0,h>1&&(R=e(R,h,u),I=e(I,h,u),S=R.length,T=I.length),O=S,w=I.slice(0,S),b=w.length;S>b;w[b++]=0);z=R.slice(),z.unshift(0),C=R[0],R[1]>=u/2&&C++;do h=0,c=t(R,w,S,b),0>c?(E=w[0],S!=b&&(E=E*u+(w[1]||0)),h=E/C|0,h>1?(h>=u&&(h=u-1),v=e(R,h,u),d=v.length,b=w.length,c=t(v,w,d,b),1==c&&(h--,r(v,d>S?z:R,d,u))):(0==h&&(c=h=1),v=R.slice()),d=v.length,b>d&&v.unshift(0),r(w,v,b,u),-1==c&&(b=w.length,c=t(R,w,S,b),1>c&&(h++,r(w,b>S?z:R,b,u))),b=w.length):0===c&&(h++,w=[0]),x[l++]=h,c&&w[0]?w[b++]=I[O]||0:(w=[I[O]],b=1);while((O++<T||null!=w[0])&&k--);m=null!=w[0]}x[0]||x.shift()}if(1==p)y.e=f,y.r=+m;else{for(l=1,k=x[0];k>=10;k/=10,l++);y.e=l+f*p-1,g(y,s?a+y.e+1:a,o,m)}return y}}();d=function(){function e(e){var t,r,n,i=this,a=\"config\",o=i.errors?parseInt:parseFloat;return e==r||\"object\"!=typeof e&&!p(i,\"object expected\",e,a)?i:((n=e[t=\"precision\"])!=r&&((y=1>n||n>S)||o(n)!=n?p(i,t,n,a,0):i[t]=0|n),(n=e[t=\"rounding\"])!=r&&((y=0>n||n>8)||o(n)!=n?p(i,t,n,a,0):i[t]=0|n),(n=e[t=\"toExpNeg\"])!=r&&((y=-C>n||n>0)||o(n)!=n?p(i,t,n,a,0):i[t]=N(n)),(n=e[t=\"toExpPos\"])!=r&&((y=0>n||n>C)||o(n)!=n?p(i,t,n,a,0):i[t]=N(n)),(n=e[t=\"minE\"])!=r&&((y=-C>n||n>0)||o(n)!=n?p(i,t,n,a,0):i[t]=N(n)),(n=e[t=\"maxE\"])!=r&&((y=0>n||n>C)||o(n)!=n?p(i,t,n,a,0):i[t]=N(n)),(n=e[t=\"errors\"])!=r&&(n===!!n||1===n||0===n?(y=b=0,i[t]=!!n):p(i,t,n,a,1)),(n=e[t=\"crypto\"])!=r&&(n===!!n||1===n||0===n?i[t]=!(!n||!x||\"object\"!=typeof x):p(i,t,n,a,1)),(n=e[t=\"modulo\"])!=r&&((y=0>n||n>9)||o(n)!=n?p(i,t,n,a,0):i[t]=0|n),(e=e[t=\"format\"])!=r&&(\"object\"==typeof e?i[t]=e:p(i,\"format object expected\",e,a)),i)}function t(e){return new this(e).exp()}function r(e){return new this(e).ln()}function n(e,t){return new this(e).log(t)}function i(e,t,r){var n,i,a=0;for(\"[object Array]\"==M.call(t[0])&&(t=t[0]),n=new e(t[0]);++a<t.length;){if(i=new e(t[a]),!i.s){n=i;break}n[r](i)&&(n=i)}return n}function a(){return i(this,arguments,\"lt\")}function o(){return i(this,arguments,\"gt\")}function s(e,t){return new this(e).pow(t)}function c(e){var t,r,n,i=0,a=[],o=this,s=new o(o.ONE);if(null!=e&&u(s,e,\"random\")?e|=0:e=o.precision,r=Math.ceil(e/_),o.crypto)if(x&&x.getRandomValues)for(t=x.getRandomValues(new Uint32Array(r));r>i;)n=t[i],n>=429e7?t[i]=x.getRandomValues(new Uint32Array(1))[0]:a[i++]=n%1e7;else if(x&&x.randomBytes){for(t=x.randomBytes(r*=4);r>i;)n=t[i]+(t[i+1]<<8)+(t[i+2]<<16)+((127&t[i+3])<<24),n>=214e7?x.randomBytes(4).copy(t,i):(a.push(n%1e7),i+=4);i=r/4}else p(o,\"crypto unavailable\",x,\"random\");if(!i)for(;r>i;)a[i++]=1e7*Math.random()|0;for(r=a[--i],e%=_,r&&e&&(n=E(10,_-e),a[i]=(r/n|0)*n);0===a[i];i--)a.pop();if(0>i)a=[r=0];else{for(r=-1;0===a[0];)a.shift(),r-=_;for(i=1,n=a[0];n>=10;)n/=10,i++;_>i&&(r-=_-i)}return s.e=r,s.c=a,s}function f(e){return new this(e).sqrt()}function l(i){function u(e,t){var r=this;if(!(r instanceof u))return p(u,\"Decimal called without new\",e),new u(e,t);if(r.constructor=u,e instanceof u){if(null==t)return b=0,r.s=e.s,r.e=e.e,r.c=(e=e.c)?e.slice():e,r;if(10==t)return g(new u(e),u.precision,u.rounding);e+=\"\"}return m(u,r,e,t)}return u.precision=20,u.rounding=4,u.modulo=1,u.toExpNeg=-7,u.toExpPos=21,u.minE=-C,u.maxE=C,u.errors=!0,u.crypto=!1,u.format={decimalSeparator:\".\",groupSeparator:\",\",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:\" \",fractionGroupSize:0},u.prototype=T,u.ONE=new u(1),u.ROUND_UP=0,u.ROUND_DOWN=1,u.ROUND_CEIL=2,u.ROUND_FLOOR=3,u.ROUND_HALF_UP=4,u.ROUND_HALF_DOWN=5,u.ROUND_HALF_EVEN=6,u.ROUND_HALF_CEIL=7,u.ROUND_HALF_FLOOR=8,u.EUCLID=9,u.config=e,u.constructor=l,u.exp=t,u.ln=r,u.log=n,u.max=a,u.min=o,u.pow=s,u.sqrt=f,u.random=c,null!=i&&u.config(i),u}var m=function(){var e=/^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,t=String.prototype.trim||function(){return this.replace(/^\\s+|\\s+$/g,\"\")};return function(r,n,i,a){var o,s,u,c,f,l;if(\"string\"!=typeof i&&(i=(c=\"number\"==typeof i||\"[object Number]\"==M.call(i))&&0===i&&0>1/i?\"-0\":i+\"\"),f=i,null==a&&e.test(i))n.s=45===i.charCodeAt(0)?(i=i.slice(1),-1):1;else{if(10==a)return g(new r(i),r.precision,r.rounding);if(i=t.call(i).replace(/^\\+(?!-)/,\"\"),n.s=45===i.charCodeAt(0)?(i=i.replace(/^-(?!-)/,\"\"),-1):1,null!=a?a!=(0|a)&&r.errors||(y=!(a>=2&&65>a))?(p(r,\"base\",a,0,0),l=e.test(i)):(o=\"[\"+O.slice(0,a=0|a)+\"]+\",i=i.replace(/\\.$/,\"\").replace(/^\\./,\"0.\"),(l=new RegExp(\"^\"+o+\"(?:\\\\.\"+o+\")?$\",37>a?\"i\":\"\").test(i))?(c&&(i.replace(/^0\\.0*|\\./,\"\").length>15&&p(r,0,f),c=!c),i=v(r,i,10,a,n.s)):\"Infinity\"!=i&&\"NaN\"!=i&&(p(r,\"not a base \"+a+\" number\",f),i=\"NaN\")):l=e.test(i),!l)return n.c=n.e=null,\"Infinity\"!=i&&(\"NaN\"!=i&&p(r,\"not a number\",f),n.s=null),b=0,n}for((s=i.indexOf(\".\"))>-1&&(i=i.replace(\".\",\"\")),(u=i.search(/e/i))>0?(0>s&&(s=u),s+=+i.slice(u+1),i=i.substring(0,u)):0>s&&(s=i.length),u=0;48===i.charCodeAt(u);u++);for(a=i.length;48===i.charCodeAt(--a););if(i=i.slice(u,a+1)){if(a=i.length,c&&a>15&&p(r,0,f),n.e=s=s-u-1,n.c=[],u=(s+1)%_,0>s&&(u+=_),a>u){for(u&&n.c.push(+i.slice(0,u)),a-=_;a>u;)n.c.push(+i.slice(u,u+=_));i=i.slice(u),u=_-i.length}else u-=a;for(;u--;i+=\"0\");n.c.push(+i),w&&(n.e>r.maxE?n.c=n.e=null:n.e<r.minE&&(n.c=[n.e=0]))}else n.c=[n.e=0];return b=0,n}}();return l()}(),n=function(){return d}.call(t,r,t,e),!(void 0!==n&&(e.exports=n))}(this)},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"bignumber\",{\"\":function(){return new e.BigNumber(0)},number:function(t){return new e.BigNumber(t+\"\")},string:function(t){return new e.BigNumber(t)},BigNumber:function(e){return e},\"Array | Matrix\":function(e){return i(e,a)}});return a.toTex={0:\"0\",1:\"\\\\left(${args[0]}\\\\right)\"},a}var i=r(19);t.name=\"bignumber\",t.factory=n},function(e,t){\"use strict\";e.exports=function r(e,t,n){return e&&\"function\"==typeof e.map?e.map(function(e){return r(e,t,n)}):t(e)}},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"bool\",{\"\":function(){return!1},\"boolean\":function(e){return e},number:function(e){return!!e},BigNumber:function(e){return!e.isZero()},string:function(e){var t=e.toLowerCase();if(\"true\"===t)return!0;if(\"false\"===t)return!1;var r=Number(e);if(\"\"!=e&&!isNaN(r))return!!r;throw new Error('Cannot convert \"'+e+'\" to a boolean')},\"Array | Matrix\":function(e){return i(e,a)}});return a}var i=r(19);t.name=\"boolean\",t.factory=n},function(e,t,r){e.exports=[r(22),r(25)]},function(e,t,r){\"use strict\";function n(e,t,r,n,o){function s(e){if(!(this instanceof s))throw new SyntaxError(\"Constructor must be called with the new operator\");e&&e.isChain?this.value=e.value:this.value=e}function u(e,t){\"function\"==typeof t&&(s.prototype[e]=f(t))}function c(e,t){a(s.prototype,e,function(){var e=t();return\"function\"==typeof e?f(e):void 0})}function f(e){return function(){for(var t=[this.value],r=0;r<arguments.length;r++)t[r+1]=arguments[r];return new s(e.apply(e,t))}}return s.prototype.type=\"Chain\",s.prototype.isChain=!0,s.prototype.done=function(){return this.value},s.prototype.valueOf=function(){return this.value},s.prototype.toString=function(){return i(this.value)},s.createProxy=function(e,t){if(\"string\"==typeof e)u(e,t);else for(var r in e)e.hasOwnProperty(r)&&u(r,e[r])},s.createProxy(o),o.on(\"import\",function(e,t,r){void 0===r&&c(e,t)}),s}var i=r(23).format,a=r(3).lazy;t.name=\"Chain\",t.path=\"type\",t.factory=n,t.math=!0,t.lazy=!1},function(e,t,r){\"use strict\";function n(e,r){if(Array.isArray(e)){for(var i=\"[\",a=e.length,o=0;a>o;o++)0!=o&&(i+=\", \"),i+=n(e[o],r);return i+=\"]\"}return t.format(e,r)}var i=r(6).format,a=r(24).format;t.isString=function(e){return\"string\"==typeof e},t.endsWith=function(e,t){var r=e.length-t.length,n=e.length;return e.substring(r,n)===t},t.format=function(e,r){return\"number\"==typeof e?i(e,r):e&&e.isBigNumber===!0?a(e,r):e&&e.isFraction===!0?r&&\"decimal\"===r.fraction?e.toString():e.s*e.n+\"/\"+e.d:Array.isArray(e)?n(e,r):t.isString(e)?'\"'+e+'\"':\"function\"==typeof e?e.syntax?e.syntax+\"\":\"function\":\"object\"==typeof e?\"function\"==typeof e.format?e.format(r):e.toString():String(e)}},function(e,t){t.format=function(e,r){if(\"function\"==typeof r)return r(e);if(!e.isFinite())return e.isNaN()?\"NaN\":e.gt(0)?\"Infinity\":\"-Infinity\";var n=\"auto\",i=void 0;switch(void 0!==r&&(r.notation&&(n=r.notation),\"number\"==typeof r?i=r:r.precision&&(i=r.precision)),n){case\"fixed\":return t.toFixed(e,i);case\"exponential\":return t.toExponential(e,i);case\"auto\":var a=.001,o=1e5;r&&r.exponential&&(void 0!==r.exponential.lower&&(a=r.exponential.lower),void 0!==r.exponential.upper&&(o=r.exponential.upper));({toExpNeg:e.constructor.toExpNeg,toExpPos:e.constructor.toExpPos});if(e.constructor.config({toExpNeg:Math.round(Math.log(a)/Math.LN10),toExpPos:Math.round(Math.log(o)/Math.LN10)}),e.isZero())return\"0\";var s,u=e.abs();return s=u.gte(a)&&u.lt(o)?e.toSignificantDigits(i).toFixed():t.toExponential(e,i),s.replace(/((\\.\\d*?)(0+))($|e)/,function(){var e=arguments[2],t=arguments[4];return\".\"!==e?e+t:t});default:throw new Error('Unknown notation \"'+n+'\". Choose \"auto\", \"exponential\", or \"fixed\".')}},t.toExponential=function(e,t){return void 0!==t?e.toExponential(t-1):e.toExponential()},t.toFixed=function(e,t){return e.toFixed(t||0)}},function(e,t){\"use strict\";function r(e,t,r,n){return n(\"chain\",{\"\":function(){return new e.Chain},any:function(t){return new e.Chain(t)}})}t.name=\"chain\",t.factory=r},function(e,t,r){e.exports=[r(27),r(29)]},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(e,t){if(!(this instanceof s))throw new SyntaxError(\"Constructor must be called with the new operator\");switch(arguments.length){case 0:this.re=0,this.im=0;break;case 1:var r=arguments[0];if(\"object\"==typeof r){if(\"re\"in r&&\"im\"in r){var n=new s(r.re,r.im);this.re=n.re,this.im=n.im;break}if(\"r\"in r&&\"phi\"in r){var n=s.fromPolar(r.r,r.phi);this.re=n.re,this.im=n.im;break}}throw new SyntaxError(\"Object with the re and im or r and phi properties expected.\");case 2:if(!i(e)||!i(t))throw new TypeError(\"Two numbers expected in Complex constructor\");this.re=e,this.im=t;break;default:throw new SyntaxError(\"One, two or three arguments expected in Complex constructor\")}}function u(){for(;\" \"==x||\"\t\"==x;)l()}function c(e){return e>=\"0\"&&\"9\">=e||\".\"==e}function f(e){return e>=\"0\"&&\"9\">=e}function l(){y++,x=d.charAt(y)}function p(e){y=e,x=d.charAt(y)}function m(){var e,t=\"\";if(e=y,\"+\"==x?l():\"-\"==x&&(t+=x,l()),!c(x))return p(e),null;if(\".\"==x){if(t+=x,l(),!f(x))return p(e),null}else{for(;f(x);)t+=x,l();\".\"==x&&(t+=x,l())}for(;f(x);)t+=x,l();if(\"E\"==x||\"e\"==x){if(t+=x,l(),(\"+\"==x||\"-\"==x)&&(t+=x,l()),!f(x))return p(e),null;for(;f(x);)t+=x,l()}return t}function h(){var e=d.charAt(y+1);if(\"I\"==x||\"i\"==x)return l(),\"1\";if(!(\"+\"!=x&&\"-\"!=x||\"I\"!=e&&\"i\"!=e)){var t=\"+\"==x?\"1\":\"-1\";return l(),l(),t}return null}function g(){return new SyntaxError('End of string expected, got \"'+d.substr(y)+'\"')}var v=n(r(28));s.prototype.isComplex=!0,s.prototype.type=\"Complex\";var d,y,x;return s.parse=function(e){if(d=e,y=-1,x=\"\",\"string\"!=typeof d)throw new TypeError(\"Invalid argument in Complex.parse, string expected\");l(),u();var t=m();if(t){if(\"I\"==x||\"i\"==x){if(l(),u(),x)throw g();return new s(0,Number(t))}u();var r=x;if(\"+\"!=r&&\"-\"!=r){if(u(),x)throw g();return new s(Number(t),0)}l(),u();var n=m();if(n){if(\"I\"!=x&&\"i\"!=x)throw new SyntaxError('Character \"i\" expected, got \"'+x+'\"');l()}else if(n=h(),!n)throw new SyntaxError(\"Imaginary part expected\");if(\"-\"==r&&(n=\"-\"==n[0]?\"+\"+n.substring(1):\"-\"+n),l(),u(),x)throw g();return new s(Number(t),Number(n))}if(t=h()){if(u(),x)throw g();return new s(0,Number(t))}throw new SyntaxError('Could not parse: \"'+e+'\" as complex number')},s.fromPolar=function(e){switch(arguments.length){case 1:var t=arguments[0];if(\"object\"==typeof t)return s.fromPolar(t.r,t.phi);throw new TypeError(\"Input has to be an object with r and phi keys.\");case 2:var r=arguments[0],n=arguments[1];if(i(r)){if(n&&n.isUnit&&n.hasBase(v.BASE_UNITS.ANGLE)&&(n=n.toNumber(\"rad\")),i(n))return new s(r*Math.cos(n),r*Math.sin(n));throw new TypeError(\"Phi is not a number nor an angle unit.\")}throw new TypeError(\"Radius r is not a number.\");default:throw new SyntaxError(\"Wrong number of arguments in function fromPolar\")}},s.prototype.toPolar=function(){return{r:Math.sqrt(this.re*this.re+this.im*this.im),phi:Math.atan2(this.im,this.re)}},s.prototype.clone=function(){return new s(this.re,this.im)},s.prototype.equals=function(e){return this.re===e.re&&this.im===e.im},s.prototype.format=function(e){var t=\"\",r=this.im,n=this.re,o=a(this.re,e),s=a(this.im,e),u=i(e)?e:e?e.precision:null;if(null!==u){var c=Math.pow(10,-u);Math.abs(n/r)<c&&(n=0),Math.abs(r/n)<c&&(r=0)}return t=0==r?o:0==n?1==r?\"i\":-1==r?\"-i\":s+\"i\":r>0?1==r?o+\" + i\":o+\" + \"+s+\"i\":-1==r?o+\" - i\":o+\" - \"+s.substring(1)+\"i\"},s.prototype.toString=function(){return this.format()},s.prototype.toJSON=function(){return{mathjs:\"Complex\",re:this.re,im:this.im}},s.fromJSON=function(e){return new s(e)},s.prototype.valueOf=s.prototype.toString,s}var i=r(6).isNumber,a=r(6).format;t.name=\"Complex\",t.path=\"type\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){function o(e,t){if(!(this instanceof o))throw new Error(\"Constructor must be called with the new operator\");if(void 0!=e&&\"number\"!=typeof e)throw new TypeError(\"First parameter in Unit constructor must be a number\");if(void 0!=t&&(\"string\"!=typeof t||\"\"==t))throw new TypeError(\"Second parameter in Unit constructor must be a string\");if(void 0!=t){var r=o.parse(t);this.units=r.units,this.dimensions=r.dimensions}else this.units=[{unit:A,prefix:b,power:0}],this.dimensions=[0,0,0,0,0,0,0,0,0];this.value=void 0!=e?this._normalize(e):null,this.fixPrefix=!1,this.isUnitListSimplified=!0}function s(){for(;\" \"==y||\"\t\"==y;)f()}function u(e){return e>=\"0\"&&\"9\">=e||\".\"==e}function c(e){return e>=\"0\"&&\"9\">=e}function f(){d++,y=v.charAt(d)}function l(e){d=e,y=v.charAt(d)}function p(){var e,t=\"\";if(e=d,\"+\"==y?f():\"-\"==y&&(t+=y,f()),!u(y))return l(e),null;if(\".\"==y){if(t+=y,f(),!c(y))return l(e),null}else{for(;c(y);)t+=y,f();\".\"==y&&(t+=y,f())}for(;c(y);)t+=y,f();if(\"E\"==y||\"e\"==y){var r=\"\",n=d;if(r+=y,f(),(\"+\"==y||\"-\"==y)&&(r+=y,f()),!c(y))return l(n),t;for(t+=r;c(y);)t+=y,f()}return t}function m(){for(var e=\"\",t=v.charCodeAt(d);t>=48&&57>=t||t>=65&&90>=t||t>=97&&122>=t;)e+=y,f(),t=v.charCodeAt(d);return t=e.charCodeAt(0),t>=65&&90>=t||t>=97&&122>=t?e||null:null}function h(e){return y===e?(f(),e):null}function g(e){for(var t in _)if(_.hasOwnProperty(t)&&a(e,t)){var r=_[t],n=e.length-t.length,i=e.substring(0,n),o=r.prefixes[i];if(void 0!==o)return{unit:r,prefix:o}}return null}o.prototype.type=\"Unit\",o.prototype.isUnit=!0;var v,d,y;o.parse=function(e){if(v=e,d=-1,y=\"\",\"string\"!=typeof v)throw new TypeError(\"Invalid argument in Unit.parse, string expected\");var t=new o;t.units=[],f(),s();var r=p(),n=null;r&&(n=parseFloat(r)),s();for(var i=1,a=!1,u=[],c=1;;){for(s();\"(\"===y;)u.push(i),c*=i,i=1,f(),s();if(!y)break;var l=y,x=m();if(null==x)throw new SyntaxError('Unexpected \"'+l+'\" in \"'+v+'\" at index '+d.toString());var w=g(x);if(null==w)throw new SyntaxError('Unit \"'+x+'\" not found.');var b=i*c;if(s(),h(\"^\")){s();var E=p();if(null==E)throw new SyntaxError('In \"'+e+'\", \"^\" must be followed by a floating-point number');b*=E}t.units.push({unit:w.unit,prefix:w.prefix,power:b});for(var M=0;M<N.length;M++)t.dimensions[M]+=w.unit.dimensions[M]*b;for(s();\")\"===y;){if(0===u.length)throw new SyntaxError('Unmatched \")\" in \"'+v+'\" at index '+d.toString());c/=u.pop(),f(),s()}a=!1,h(\"*\")?(i=1,a=!0):h(\"/\")?(i=-1,a=!0):i=1;var A=w.unit.base.key;T.auto[A]={unit:w.unit,prefix:w.prefix}}if(s(),y)throw new SyntaxError('Could not parse: \"'+e+'\"');if(a)throw new SyntaxError('Trailing characters: \"'+e+'\"');if(0!==u.length)throw new SyntaxError('Unmatched \"(\" in \"'+v+'\"');if(0==t.units.length)throw new SyntaxError('\"'+e+'\" contains no units');return t.value=void 0!=n?t._normalize(n):null,t},o.prototype.clone=function(){var e=new o;for(var t in this)this.hasOwnProperty(t)&&(e[t]=this[t]);e.dimensions=this.dimensions.slice(0),e.units=[];for(var r=0;r<this.units.length;r++){e.units[r]={};for(var t in this.units[r])this.units[r].hasOwnProperty(t)&&(e.units[r][t]=this.units[r][t])}return e},o.prototype._isDerived=function(){return 0===this.units.length?!1:this.units.length>1||Math.abs(this.units[0].power-1)>1e-15},o.prototype._normalize=function(e){if(0===this.units.length)return e;if(this._isDerived()){for(var t=e,r=0;r<this.units.length;r++)t*=Math.pow(this.units[r].unit.value*this.units[r].prefix.value,this.units[r].power);return t}return(e+this.units[0].unit.offset)*this.units[0].unit.value*this.units[0].prefix.value},o.prototype._denormalize=function(e,t){if(0===this.units.length)return e;if(this._isDerived()){for(var r=e,n=0;n<this.units.length;n++)r/=Math.pow(this.units[n].unit.value*this.units[n].prefix.value,this.units[n].power);return r}return void 0==t?e/this.units[0].unit.value/this.units[0].prefix.value-this.units[0].unit.offset:e/this.units[0].unit.value/t-this.units[0].unit.offset},o.isValuelessUnit=function(e){return null!=g(e)},o.prototype.hasBase=function(e){for(var t=0;t<N.length;t++)if(Math.abs(this.dimensions[t]-e.dimensions[t])>1e-12)return!1;return!0},o.prototype.equalBase=function(e){for(var t=0;t<N.length;t++)if(Math.abs(this.dimensions[t]-e.dimensions[t])>1e-12)return!1;return!0},o.prototype.equals=function(e){return this.equalBase(e)&&this.value==e.value},o.prototype.multiply=function(e){for(var t=this.clone(),r=0;r<N.length;r++)t.dimensions[r]=this.dimensions[r]+e.dimensions[r];for(var r=0;r<e.units.length;r++){var n=JSON.parse(JSON.stringify(e.units[r]));t.units.push(n)}if(null!=this.value||null!=e.value){var i=null==this.value?this._normalize(1):this.value,a=null==e.value?e._normalize(1):e.value;t.value=i*a}else t.value=null;return t.isUnitListSimplified=!1,t},o.prototype.divide=function(e){for(var t=this.clone(),r=0;r<N.length;r++)t.dimensions[r]=this.dimensions[r]-e.dimensions[r];for(var r=0;r<e.units.length;r++){var n=JSON.parse(JSON.stringify(e.units[r]));n.power=-n.power,t.units.push(n)}if(null!=this.value||null!=e.value){var i=null==this.value?this._normalize(1):this.value,a=null==e.value?e._normalize(1):e.value;t.value=i/a}else t.value=null;return t.isUnitListSimplified=!1,t},o.prototype.pow=function(e){for(var t=this.clone(),r=0;r<N.length;r++)t.dimensions[r]=this.dimensions[r]*e;for(var r=0;r<t.units.length;r++)t.units[r].power*=e;return null!=t.value?t.value=Math.pow(t.value,e):t.value=null,t.isUnitListSimplified=!1,t},o.prototype.to=function(e){var t,r=null==this.value?this._normalize(1):this.value;if(\"string\"==typeof e){if(t=o.parse(e),!this.equalBase(t))throw new Error(\"Units do not match\");if(null!==t.value)throw new Error(\"Cannot convert to a unit with a value\");return t.value=r,t.fixPrefix=!0,t.isUnitListSimplified=!0,t}if(e&&e.isUnit){if(!this.equalBase(e))throw new Error(\"Units do not match\");if(null!==e.value)throw new Error(\"Cannot convert to a unit with a value\");return t=e.clone(),t.value=r,t.fixPrefix=!0,t.isUnitListSimplified=!0,t}throw new Error(\"String or Unit expected as parameter\")},o.prototype.toNumber=function(e){var t=this.to(e);return t._isDerived()?t._denormalize(t.value):t._denormalize(t.value,t.units[0].prefix.value)},o.prototype.toString=function(){return this.format()},o.prototype.toJSON=function(){return{mathjs:\"Unit\",value:this._denormalize(this.value),unit:this.formatUnits(),fixPrefix:this.fixPrefix}},o.fromJSON=function(e){var t=new o(e.value,e.unit);return t.fixPrefix=e.fixPrefix||!1,t},o.prototype.valueOf=o.prototype.toString,o.prototype.simplifyUnitListLazy=function(){if(!this.isUnitListSimplified&&null!=this.value){var e,t=[];for(var r in C)if(this.hasBase(E[r])){e=r;break}if(\"NONE\"===e)this.units=[];else{var n;e&&C.hasOwnProperty(e)&&(n=C[e]);if(n)this.units=[{unit:n.unit,prefix:n.prefix,power:1}];else{for(var i=0;i<N.length;i++){var a=N[i];Math.abs(this.dimensions[i])>1e-12&&t.push({unit:C[a].unit,prefix:C[a].prefix,power:this.dimensions[i]})}t.length<this.units.length&&(this.units=t)}}this.isUnitListSimplified=!0}},o.prototype.formatUnits=function(){this.simplifyUnitListLazy();for(var e=\"\",t=\"\",r=0,n=0,i=0;i<this.units.length;i++)this.units[i].power>0?(r++,e+=\" \"+this.units[i].prefix.name+this.units[i].unit.name,Math.abs(this.units[i].power-1)>1e-15&&(e+=\"^\"+this.units[i].power)):this.units[i].power<0&&n++;if(n>0)for(var i=0;i<this.units.length;i++)this.units[i].power<0&&(r>0?(t+=\" \"+this.units[i].prefix.name+this.units[i].unit.name,Math.abs(this.units[i].power+1)>1e-15&&(t+=\"^\"+-this.units[i].power)):(t+=\" \"+this.units[i].prefix.name+this.units[i].unit.name,t+=\"^\"+this.units[i].power));e=e.substr(1),t=t.substr(1),r>1&&n>0&&(e=\"(\"+e+\")\"),\nn>1&&r>0&&(t=\"(\"+t+\")\");var a=e;return r>0&&n>0&&(a+=\" / \"),a+=t},o.prototype.format=function(e){if(this.simplifyUnitListLazy(),1===this.units.length&&!this.fixPrefix&&Math.abs(this.units[0].power-Math.round(this.units[0].power))<1e-14){var t=this._bestPrefix();this.units[0].prefix=t}var r=this._denormalize(this.value),n=null!==this.value?i(r,e):\"\",a=this.formatUnits();return a.length>0&&n.length>0&&(n+=\" \"),n+=a},o.prototype._bestPrefix=function(){if(1!==this.units.length)throw new Error(\"Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!\");if(Math.abs(this.units[0].power-Math.round(this.units[0].power))>=1e-14)throw new Error(\"Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!\");var e=Math.abs(this.value),t=this.units[0].prefix;if(0===e)return t;var r=this.units[0].power,n=Math.abs(Math.log(e/Math.pow(t.value*this.units[0].unit.value,r))/Math.LN10-1.2),i=this.units[0].unit.prefixes;for(var a in i)if(i.hasOwnProperty(a)){var o=i[a];if(o.scientific){var s=Math.abs(Math.log(e/Math.pow(o.value*this.units[0].unit.value,r))/Math.LN10-1.2);(n>s||s===n&&o.name.length<t.name.length)&&(t=o,n=s)}}return t};var x={NONE:{\"\":{name:\"\",value:1,scientific:!0}},SHORT:{\"\":{name:\"\",value:1,scientific:!0},da:{name:\"da\",value:10,scientific:!1},h:{name:\"h\",value:100,scientific:!1},k:{name:\"k\",value:1e3,scientific:!0},M:{name:\"M\",value:1e6,scientific:!0},G:{name:\"G\",value:1e9,scientific:!0},T:{name:\"T\",value:1e12,scientific:!0},P:{name:\"P\",value:1e15,scientific:!0},E:{name:\"E\",value:1e18,scientific:!0},Z:{name:\"Z\",value:1e21,scientific:!0},Y:{name:\"Y\",value:1e24,scientific:!0},d:{name:\"d\",value:.1,scientific:!1},c:{name:\"c\",value:.01,scientific:!1},m:{name:\"m\",value:.001,scientific:!0},u:{name:\"u\",value:1e-6,scientific:!0},n:{name:\"n\",value:1e-9,scientific:!0},p:{name:\"p\",value:1e-12,scientific:!0},f:{name:\"f\",value:1e-15,scientific:!0},a:{name:\"a\",value:1e-18,scientific:!0},z:{name:\"z\",value:1e-21,scientific:!0},y:{name:\"y\",value:1e-24,scientific:!0}},LONG:{\"\":{name:\"\",value:1,scientific:!0},deca:{name:\"deca\",value:10,scientific:!1},hecto:{name:\"hecto\",value:100,scientific:!1},kilo:{name:\"kilo\",value:1e3,scientific:!0},mega:{name:\"mega\",value:1e6,scientific:!0},giga:{name:\"giga\",value:1e9,scientific:!0},tera:{name:\"tera\",value:1e12,scientific:!0},peta:{name:\"peta\",value:1e15,scientific:!0},exa:{name:\"exa\",value:1e18,scientific:!0},zetta:{name:\"zetta\",value:1e21,scientific:!0},yotta:{name:\"yotta\",value:1e24,scientific:!0},deci:{name:\"deci\",value:.1,scientific:!1},centi:{name:\"centi\",value:.01,scientific:!1},milli:{name:\"milli\",value:.001,scientific:!0},micro:{name:\"micro\",value:1e-6,scientific:!0},nano:{name:\"nano\",value:1e-9,scientific:!0},pico:{name:\"pico\",value:1e-12,scientific:!0},femto:{name:\"femto\",value:1e-15,scientific:!0},atto:{name:\"atto\",value:1e-18,scientific:!0},zepto:{name:\"zepto\",value:1e-21,scientific:!0},yocto:{name:\"yocto\",value:1e-24,scientific:!0}},SQUARED:{\"\":{name:\"\",value:1,scientific:!0},da:{name:\"da\",value:100,scientific:!1},h:{name:\"h\",value:1e4,scientific:!1},k:{name:\"k\",value:1e6,scientific:!0},M:{name:\"M\",value:1e12,scientific:!0},G:{name:\"G\",value:1e18,scientific:!0},T:{name:\"T\",value:1e24,scientific:!0},P:{name:\"P\",value:1e30,scientific:!0},E:{name:\"E\",value:1e36,scientific:!0},Z:{name:\"Z\",value:1e42,scientific:!0},Y:{name:\"Y\",value:1e48,scientific:!0},d:{name:\"d\",value:.01,scientific:!1},c:{name:\"c\",value:1e-4,scientific:!1},m:{name:\"m\",value:1e-6,scientific:!0},u:{name:\"u\",value:1e-12,scientific:!0},n:{name:\"n\",value:1e-18,scientific:!0},p:{name:\"p\",value:1e-24,scientific:!0},f:{name:\"f\",value:1e-30,scientific:!0},a:{name:\"a\",value:1e-36,scientific:!0},z:{name:\"z\",value:1e-42,scientific:!0},y:{name:\"y\",value:1e-48,scientific:!0}},CUBIC:{\"\":{name:\"\",value:1,scientific:!0},da:{name:\"da\",value:1e3,scientific:!1},h:{name:\"h\",value:1e6,scientific:!1},k:{name:\"k\",value:1e9,scientific:!0},M:{name:\"M\",value:1e18,scientific:!0},G:{name:\"G\",value:1e27,scientific:!0},T:{name:\"T\",value:1e36,scientific:!0},P:{name:\"P\",value:1e45,scientific:!0},E:{name:\"E\",value:1e54,scientific:!0},Z:{name:\"Z\",value:1e63,scientific:!0},Y:{name:\"Y\",value:1e72,scientific:!0},d:{name:\"d\",value:.001,scientific:!1},c:{name:\"c\",value:1e-6,scientific:!1},m:{name:\"m\",value:1e-9,scientific:!0},u:{name:\"u\",value:1e-18,scientific:!0},n:{name:\"n\",value:1e-27,scientific:!0},p:{name:\"p\",value:1e-36,scientific:!0},f:{name:\"f\",value:1e-45,scientific:!0},a:{name:\"a\",value:1e-54,scientific:!0},z:{name:\"z\",value:1e-63,scientific:!0},y:{name:\"y\",value:1e-72,scientific:!0}},BINARY_SHORT:{\"\":{name:\"\",value:1,scientific:!0},k:{name:\"k\",value:1e3,scientific:!0},M:{name:\"M\",value:1e6,scientific:!0},G:{name:\"G\",value:1e9,scientific:!0},T:{name:\"T\",value:1e12,scientific:!0},P:{name:\"P\",value:1e15,scientific:!0},E:{name:\"E\",value:1e18,scientific:!0},Z:{name:\"Z\",value:1e21,scientific:!0},Y:{name:\"Y\",value:1e24,scientific:!0},Ki:{name:\"Ki\",value:1024,scientific:!0},Mi:{name:\"Mi\",value:Math.pow(1024,2),scientific:!0},Gi:{name:\"Gi\",value:Math.pow(1024,3),scientific:!0},Ti:{name:\"Ti\",value:Math.pow(1024,4),scientific:!0},Pi:{name:\"Pi\",value:Math.pow(1024,5),scientific:!0},Ei:{name:\"Ei\",value:Math.pow(1024,6),scientific:!0},Zi:{name:\"Zi\",value:Math.pow(1024,7),scientific:!0},Yi:{name:\"Yi\",value:Math.pow(1024,8),scientific:!0}},BINARY_LONG:{\"\":{name:\"\",value:1,scientific:!0},kilo:{name:\"kilo\",value:1e3,scientific:!0},mega:{name:\"mega\",value:1e6,scientific:!0},giga:{name:\"giga\",value:1e9,scientific:!0},tera:{name:\"tera\",value:1e12,scientific:!0},peta:{name:\"peta\",value:1e15,scientific:!0},exa:{name:\"exa\",value:1e18,scientific:!0},zetta:{name:\"zetta\",value:1e21,scientific:!0},yotta:{name:\"yotta\",value:1e24,scientific:!0},kibi:{name:\"kibi\",value:1024,scientific:!0},mebi:{name:\"mebi\",value:Math.pow(1024,2),scientific:!0},gibi:{name:\"gibi\",value:Math.pow(1024,3),scientific:!0},tebi:{name:\"tebi\",value:Math.pow(1024,4),scientific:!0},pebi:{name:\"pebi\",value:Math.pow(1024,5),scientific:!0},exi:{name:\"exi\",value:Math.pow(1024,6),scientific:!0},zebi:{name:\"zebi\",value:Math.pow(1024,7),scientific:!0},yobi:{name:\"yobi\",value:Math.pow(1024,8),scientific:!0}},BTU:{\"\":{name:\"\",value:1,scientific:!0},MM:{name:\"MM\",value:1e6,scientific:!0}}};x.SHORTLONG={};for(var w in x.SHORT)x.SHORT.hasOwnProperty(w)&&(x.SHORTLONG[w]=x.SHORT[w]);for(var w in x.LONG)x.LONG.hasOwnProperty(w)&&(x.SHORTLONG[w]=x.LONG[w]);var b={name:\"\",value:1,scientific:!0},N=[\"MASS\",\"LENGTH\",\"TIME\",\"CURRENT\",\"TEMPERATURE\",\"LUMINOUS_INTENSITY\",\"AMOUNT_OF_SUBSTANCE\",\"ANGLE\",\"BIT\"],E={NONE:{dimensions:[0,0,0,0,0,0,0,0,0]},MASS:{dimensions:[1,0,0,0,0,0,0,0,0]},LENGTH:{dimensions:[0,1,0,0,0,0,0,0,0]},TIME:{dimensions:[0,0,1,0,0,0,0,0,0]},CURRENT:{dimensions:[0,0,0,1,0,0,0,0,0]},TEMPERATURE:{dimensions:[0,0,0,0,1,0,0,0,0]},LUMINOUS_INTENSITY:{dimensions:[0,0,0,0,0,1,0,0,0]},AMOUNT_OF_SUBSTANCE:{dimensions:[0,0,0,0,0,0,1,0,0]},FORCE:{dimensions:[1,1,-2,0,0,0,0,0,0]},SURFACE:{dimensions:[0,2,0,0,0,0,0,0,0]},VOLUME:{dimensions:[0,3,0,0,0,0,0,0,0]},ENERGY:{dimensions:[1,2,-2,0,0,0,0,0,0]},POWER:{dimensions:[1,2,-3,0,0,0,0,0,0]},PRESSURE:{dimensions:[1,-1,-2,0,0,0,0,0,0]},ELECTRIC_CHARGE:{dimensions:[0,0,1,1,0,0,0,0,0]},ELECTRIC_CAPACITANCE:{dimensions:[-1,-2,4,2,0,0,0,0,0]},ELECTRIC_POTENTIAL:{dimensions:[1,2,-3,-1,0,0,0,0,0]},ELECTRIC_RESISTANCE:{dimensions:[1,2,-3,-2,0,0,0,0,0]},ELECTRIC_INDUCTANCE:{dimensions:[1,2,-2,-2,0,0,0,0,0]},ELECTRIC_CONDUCTANCE:{dimensions:[-1,-2,3,2,0,0,0,0,0]},MAGNETIC_FLUX:{dimensions:[1,2,-2,-1,0,0,0,0,0]},MAGNETIC_FLUX_DENSITY:{dimensions:[1,0,-2,-1,0,0,0,0,0]},ANGLE:{dimensions:[0,0,0,0,0,0,0,1,0]},BIT:{dimensions:[0,0,0,0,0,0,0,0,1]}};for(var w in E)E[w].key=w;var M={},A={name:\"\",base:M,value:1,offset:0,dimensions:[0,0,0,0,0,0,0,0,0]},_={meter:{name:\"meter\",base:E.LENGTH,prefixes:x.LONG,value:1,offset:0},inch:{name:\"inch\",base:E.LENGTH,prefixes:x.NONE,value:.0254,offset:0},foot:{name:\"foot\",base:E.LENGTH,prefixes:x.NONE,value:.3048,offset:0},yard:{name:\"yard\",base:E.LENGTH,prefixes:x.NONE,value:.9144,offset:0},mile:{name:\"mile\",base:E.LENGTH,prefixes:x.NONE,value:1609.344,offset:0},link:{name:\"link\",base:E.LENGTH,prefixes:x.NONE,value:.201168,offset:0},rod:{name:\"rod\",base:E.LENGTH,prefixes:x.NONE,value:5.02921,offset:0},chain:{name:\"chain\",base:E.LENGTH,prefixes:x.NONE,value:20.1168,offset:0},angstrom:{name:\"angstrom\",base:E.LENGTH,prefixes:x.NONE,value:1e-10,offset:0},m:{name:\"m\",base:E.LENGTH,prefixes:x.SHORT,value:1,offset:0},\"in\":{name:\"in\",base:E.LENGTH,prefixes:x.NONE,value:.0254,offset:0},ft:{name:\"ft\",base:E.LENGTH,prefixes:x.NONE,value:.3048,offset:0},yd:{name:\"yd\",base:E.LENGTH,prefixes:x.NONE,value:.9144,offset:0},mi:{name:\"mi\",base:E.LENGTH,prefixes:x.NONE,value:1609.344,offset:0},li:{name:\"li\",base:E.LENGTH,prefixes:x.NONE,value:.201168,offset:0},rd:{name:\"rd\",base:E.LENGTH,prefixes:x.NONE,value:5.02921,offset:0},ch:{name:\"ch\",base:E.LENGTH,prefixes:x.NONE,value:20.1168,offset:0},mil:{name:\"mil\",base:E.LENGTH,prefixes:x.NONE,value:254e-7,offset:0},m2:{name:\"m2\",base:E.SURFACE,prefixes:x.SQUARED,value:1,offset:0},sqin:{name:\"sqin\",base:E.SURFACE,prefixes:x.NONE,value:64516e-8,offset:0},sqft:{name:\"sqft\",base:E.SURFACE,prefixes:x.NONE,value:.09290304,offset:0},sqyd:{name:\"sqyd\",base:E.SURFACE,prefixes:x.NONE,value:.83612736,offset:0},sqmi:{name:\"sqmi\",base:E.SURFACE,prefixes:x.NONE,value:2589988.110336,offset:0},sqrd:{name:\"sqrd\",base:E.SURFACE,prefixes:x.NONE,value:25.29295,offset:0},sqch:{name:\"sqch\",base:E.SURFACE,prefixes:x.NONE,value:404.6873,offset:0},sqmil:{name:\"sqmil\",base:E.SURFACE,prefixes:x.NONE,value:6.4516e-10,offset:0},m3:{name:\"m3\",base:E.VOLUME,prefixes:x.CUBIC,value:1,offset:0},L:{name:\"L\",base:E.VOLUME,prefixes:x.SHORT,value:.001,offset:0},l:{name:\"l\",base:E.VOLUME,prefixes:x.SHORT,value:.001,offset:0},litre:{name:\"litre\",base:E.VOLUME,prefixes:x.LONG,value:.001,offset:0},cuin:{name:\"cuin\",base:E.VOLUME,prefixes:x.NONE,value:16387064e-12,offset:0},cuft:{name:\"cuft\",base:E.VOLUME,prefixes:x.NONE,value:.028316846592,offset:0},cuyd:{name:\"cuyd\",base:E.VOLUME,prefixes:x.NONE,value:.764554857984,offset:0},teaspoon:{name:\"teaspoon\",base:E.VOLUME,prefixes:x.NONE,value:5e-6,offset:0},tablespoon:{name:\"tablespoon\",base:E.VOLUME,prefixes:x.NONE,value:15e-6,offset:0},drop:{name:\"drop\",base:E.VOLUME,prefixes:x.NONE,value:5e-8,offset:0},gtt:{name:\"gtt\",base:E.VOLUME,prefixes:x.NONE,value:5e-8,offset:0},minim:{name:\"minim\",base:E.VOLUME,prefixes:x.NONE,value:6.161152e-8,offset:0},fluiddram:{name:\"fluiddram\",base:E.VOLUME,prefixes:x.NONE,value:36966911e-13,offset:0},fluidounce:{name:\"fluidounce\",base:E.VOLUME,prefixes:x.NONE,value:2957353e-11,offset:0},gill:{name:\"gill\",base:E.VOLUME,prefixes:x.NONE,value:.0001182941,offset:0},cc:{name:\"cc\",base:E.VOLUME,prefixes:x.NONE,value:1e-6,offset:0},cup:{name:\"cup\",base:E.VOLUME,prefixes:x.NONE,value:.0002365882,offset:0},pint:{name:\"pint\",base:E.VOLUME,prefixes:x.NONE,value:.0004731765,offset:0},quart:{name:\"quart\",base:E.VOLUME,prefixes:x.NONE,value:.0009463529,offset:0},gallon:{name:\"gallon\",base:E.VOLUME,prefixes:x.NONE,value:.003785412,offset:0},beerbarrel:{name:\"beerbarrel\",base:E.VOLUME,prefixes:x.NONE,value:.1173478,offset:0},oilbarrel:{name:\"oilbarrel\",base:E.VOLUME,prefixes:x.NONE,value:.1589873,offset:0},hogshead:{name:\"hogshead\",base:E.VOLUME,prefixes:x.NONE,value:.238481,offset:0},fldr:{name:\"fldr\",base:E.VOLUME,prefixes:x.NONE,value:36966911e-13,offset:0},floz:{name:\"floz\",base:E.VOLUME,prefixes:x.NONE,value:2957353e-11,offset:0},gi:{name:\"gi\",base:E.VOLUME,prefixes:x.NONE,value:.0001182941,offset:0},cp:{name:\"cp\",base:E.VOLUME,prefixes:x.NONE,value:.0002365882,offset:0},pt:{name:\"pt\",base:E.VOLUME,prefixes:x.NONE,value:.0004731765,offset:0},qt:{name:\"qt\",base:E.VOLUME,prefixes:x.NONE,value:.0009463529,offset:0},gal:{name:\"gal\",base:E.VOLUME,prefixes:x.NONE,value:.003785412,offset:0},bbl:{name:\"bbl\",base:E.VOLUME,prefixes:x.NONE,value:.1173478,offset:0},obl:{name:\"obl\",base:E.VOLUME,prefixes:x.NONE,value:.1589873,offset:0},g:{name:\"g\",base:E.MASS,prefixes:x.SHORT,value:.001,offset:0},gram:{name:\"gram\",base:E.MASS,prefixes:x.LONG,value:.001,offset:0},ton:{name:\"ton\",base:E.MASS,prefixes:x.SHORT,value:907.18474,offset:0},tonne:{name:\"tonne\",base:E.MASS,prefixes:x.SHORT,value:1e3,offset:0},grain:{name:\"grain\",base:E.MASS,prefixes:x.NONE,value:6479891e-11,offset:0},dram:{name:\"dram\",base:E.MASS,prefixes:x.NONE,value:.0017718451953125,offset:0},ounce:{name:\"ounce\",base:E.MASS,prefixes:x.NONE,value:.028349523125,offset:0},poundmass:{name:\"poundmass\",base:E.MASS,prefixes:x.NONE,value:.45359237,offset:0},hundredweight:{name:\"hundredweight\",base:E.MASS,prefixes:x.NONE,value:45.359237,offset:0},stick:{name:\"stick\",base:E.MASS,prefixes:x.NONE,value:.115,offset:0},stone:{name:\"stone\",base:E.MASS,prefixes:x.NONE,value:6.35029318,offset:0},gr:{name:\"gr\",base:E.MASS,prefixes:x.NONE,value:6479891e-11,offset:0},dr:{name:\"dr\",base:E.MASS,prefixes:x.NONE,value:.0017718451953125,offset:0},oz:{name:\"oz\",base:E.MASS,prefixes:x.NONE,value:.028349523125,offset:0},lbm:{name:\"lbm\",base:E.MASS,prefixes:x.NONE,value:.45359237,offset:0},cwt:{name:\"cwt\",base:E.MASS,prefixes:x.NONE,value:45.359237,offset:0},s:{name:\"s\",base:E.TIME,prefixes:x.SHORT,value:1,offset:0},min:{name:\"min\",base:E.TIME,prefixes:x.NONE,value:60,offset:0},h:{name:\"h\",base:E.TIME,prefixes:x.NONE,value:3600,offset:0},second:{name:\"second\",base:E.TIME,prefixes:x.LONG,value:1,offset:0},sec:{name:\"sec\",base:E.TIME,prefixes:x.LONG,value:1,offset:0},minute:{name:\"minute\",base:E.TIME,prefixes:x.NONE,value:60,offset:0},hour:{name:\"hour\",base:E.TIME,prefixes:x.NONE,value:3600,offset:0},day:{name:\"day\",base:E.TIME,prefixes:x.NONE,value:86400,offset:0},rad:{name:\"rad\",base:E.ANGLE,prefixes:x.NONE,value:1,offset:0},deg:{name:\"deg\",base:E.ANGLE,prefixes:x.NONE,value:.017453292519943295,offset:0},grad:{name:\"grad\",base:E.ANGLE,prefixes:x.NONE,value:.015707963267948967,offset:0},cycle:{name:\"cycle\",base:E.ANGLE,prefixes:x.NONE,value:6.283185307179586,offset:0},A:{name:\"A\",base:E.CURRENT,prefixes:x.SHORT,value:1,offset:0},ampere:{name:\"ampere\",base:E.CURRENT,prefixes:x.LONG,value:1,offset:0},K:{name:\"K\",base:E.TEMPERATURE,prefixes:x.NONE,value:1,offset:0},degC:{name:\"degC\",base:E.TEMPERATURE,prefixes:x.NONE,value:1,offset:273.15},degF:{name:\"degF\",base:E.TEMPERATURE,prefixes:x.NONE,value:1/1.8,offset:459.67},degR:{name:\"degR\",base:E.TEMPERATURE,prefixes:x.NONE,value:1/1.8,offset:0},kelvin:{name:\"kelvin\",base:E.TEMPERATURE,prefixes:x.NONE,value:1,offset:0},celsius:{name:\"celsius\",base:E.TEMPERATURE,prefixes:x.NONE,value:1,offset:273.15},fahrenheit:{name:\"fahrenheit\",base:E.TEMPERATURE,prefixes:x.NONE,value:1/1.8,offset:459.67},rankine:{name:\"rankine\",base:E.TEMPERATURE,prefixes:x.NONE,value:1/1.8,offset:0},mol:{name:\"mol\",base:E.AMOUNT_OF_SUBSTANCE,prefixes:x.NONE,value:1,offset:0},mole:{name:\"mole\",base:E.AMOUNT_OF_SUBSTANCE,prefixes:x.NONE,value:1,offset:0},cd:{name:\"cd\",base:E.LUMINOUS_INTENSITY,prefixes:x.NONE,value:1,offset:0},candela:{name:\"candela\",base:E.LUMINOUS_INTENSITY,prefixes:x.NONE,value:1,offset:0},N:{name:\"N\",base:E.FORCE,prefixes:x.SHORT,value:1,offset:0},newton:{name:\"newton\",base:E.FORCE,prefixes:x.LONG,value:1,offset:0},dyn:{name:\"dyn\",base:E.FORCE,prefixes:x.SHORT,value:1e-5,offset:0},dyne:{name:\"dyne\",base:E.FORCE,prefixes:x.LONG,value:1e-5,offset:0},lbf:{name:\"lbf\",base:E.FORCE,prefixes:x.NONE,value:4.4482216152605,offset:0},poundforce:{name:\"poundforce\",base:E.FORCE,prefixes:x.NONE,value:4.4482216152605,offset:0},J:{name:\"J\",base:E.ENERGY,prefixes:x.SHORT,value:1,offset:0},joule:{name:\"joule\",base:E.ENERGY,prefixes:x.SHORT,value:1,offset:0},erg:{name:\"erg\",base:E.ENERGY,prefixes:x.NONE,value:1e-5,offset:0},Wh:{name:\"Wh\",base:E.ENERGY,prefixes:x.SHORT,value:3600,offset:0},BTU:{name:\"BTU\",base:E.ENERGY,prefixes:x.BTU,value:1055.05585262,offset:0},eV:{name:\"eV\",base:E.ENERGY,prefixes:x.SHORT,value:1.602176565e-19,offset:0},electronvolt:{name:\"electronvolt\",base:E.ENERGY,prefixes:x.LONG,value:1.602176565e-19,offset:0},W:{name:\"W\",base:E.POWER,prefixes:x.SHORT,value:1,offset:0},watt:{name:\"W\",base:E.POWER,prefixes:x.LONG,value:1,offset:0},hp:{name:\"hp\",base:E.POWER,prefixes:x.NONE,value:745.6998715386,offset:0},Pa:{name:\"Pa\",base:E.PRESSURE,prefixes:x.SHORT,value:1,offset:0},psi:{name:\"psi\",base:E.PRESSURE,prefixes:x.NONE,value:6894.75729276459,offset:0},atm:{name:\"atm\",base:E.PRESSURE,prefixes:x.NONE,value:101325,offset:0},coulomb:{name:\"coulomb\",base:E.ELECTRIC_CHARGE,prefixes:x.LONG,value:1,offset:0},C:{name:\"C\",base:E.ELECTRIC_CHARGE,prefixes:x.SHORT,value:1,offset:0},farad:{name:\"farad\",base:E.ELECTRIC_CAPACITANCE,prefixes:x.LONG,value:1,offset:0},F:{name:\"F\",base:E.ELECTRIC_CAPACITANCE,prefixes:x.SHORT,value:1,offset:0},volt:{name:\"volt\",base:E.ELECTRIC_POTENTIAL,prefixes:x.LONG,value:1,offset:0},V:{name:\"V\",base:E.ELECTRIC_POTENTIAL,prefixes:x.SHORT,value:1,offset:0},ohm:{name:\"ohm\",base:E.ELECTRIC_RESISTANCE,prefixes:x.SHORTLONG,value:1,offset:0},henry:{name:\"henry\",base:E.ELECTRIC_INDUCTANCE,prefixes:x.LONG,value:1,offset:0},H:{name:\"H\",base:E.ELECTRIC_INDUCTANCE,prefixes:x.SHORT,value:1,offset:0},siemens:{name:\"siemens\",base:E.ELECTRIC_CONDUCTANCE,prefixes:x.LONG,value:1,offset:0},S:{name:\"S\",base:E.ELECTRIC_CONDUCTANCE,prefixes:x.SHORT,value:1,offset:0},weber:{name:\"weber\",base:E.MAGNETIC_FLUX,prefixes:x.LONG,value:1,offset:0},Wb:{name:\"Wb\",base:E.MAGNETIC_FLUX,prefixes:x.SHORT,value:1,offset:0},tesla:{name:\"tesla\",base:E.MAGNETIC_FLUX_DENSITY,prefixes:x.LONG,value:1,offset:0},T:{name:\"T\",base:E.MAGNETIC_FLUX_DENSITY,prefixes:x.SHORT,value:1,offset:0},b:{name:\"b\",base:E.BIT,prefixes:x.BINARY_SHORT,value:1,offset:0},bits:{name:\"bits\",base:E.BIT,prefixes:x.BINARY_LONG,value:1,offset:0},B:{name:\"B\",base:E.BIT,prefixes:x.BINARY_SHORT,value:8,offset:0},bytes:{name:\"bytes\",base:E.BIT,prefixes:x.BINARY_LONG,value:8,offset:0}},O={meters:\"meter\",inches:\"inch\",feet:\"foot\",yards:\"yard\",miles:\"mile\",links:\"link\",rods:\"rod\",chains:\"chain\",angstroms:\"angstrom\",litres:\"litre\",teaspoons:\"teaspoon\",tablespoons:\"tablespoon\",minims:\"minim\",fluiddrams:\"fluiddram\",fluidounces:\"fluidounce\",gills:\"gill\",cups:\"cup\",pints:\"pint\",quarts:\"quart\",gallons:\"gallon\",beerbarrels:\"beerbarrel\",oilbarrels:\"oilbarrel\",hogsheads:\"hogshead\",gtts:\"gtt\",grams:\"gram\",tons:\"ton\",tonnes:\"tonne\",grains:\"grain\",drams:\"dram\",ounces:\"ounce\",poundmasses:\"poundmass\",hundredweights:\"hundredweight\",sticks:\"stick\",seconds:\"second\",minutes:\"minute\",hours:\"hour\",days:\"day\",radians:\"rad\",degrees:\"deg\",gradients:\"grad\",cycles:\"cycle\",BTUs:\"BTU\",watts:\"watt\",joules:\"joule\",amperes:\"ampere\",coulombs:\"coulomb\",volts:\"volt\",ohms:\"ohm\",farads:\"farad\",webers:\"weber\",teslas:\"tesla\",electronvolts:\"electronvolt\",moles:\"mole\"},T={si:{NONE:{unit:A,prefix:x.NONE[\"\"]},LENGTH:{unit:_.m,prefix:x.SHORT[\"\"]},MASS:{unit:_.g,prefix:x.SHORT.k},TIME:{unit:_.s,prefix:x.SHORT[\"\"]},CURRENT:{unit:_.A,prefix:x.SHORT[\"\"]},TEMPERATURE:{unit:_.K,prefix:x.SHORT[\"\"]},LUMINOUS_INTENSITY:{unit:_.cd,prefix:x.SHORT[\"\"]},AMOUNT_OF_SUBSTANCE:{unit:_.mol,prefix:x.SHORT[\"\"]},ANGLE:{unit:_.rad,prefix:x.SHORT[\"\"]},BIT:{unit:_.bit,prefix:x.SHORT[\"\"]},FORCE:{unit:_.N,prefix:x.SHORT[\"\"]},ENERGY:{unit:_.J,prefix:x.SHORT[\"\"]},POWER:{unit:_.W,prefix:x.SHORT[\"\"]},PRESSURE:{unit:_.Pa,prefix:x.SHORT[\"\"]},ELECTRIC_CHARGE:{unit:_.C,prefix:x.SHORT[\"\"]},ELECTRIC_CAPACITANCE:{unit:_.F,prefix:x.SHORT[\"\"]},ELECTRIC_POTENTIAL:{unit:_.V,prefix:x.SHORT[\"\"]},ELECTRIC_RESISTANCE:{unit:_.ohm,prefix:x.SHORT[\"\"]},ELECTRIC_INDUCTANCE:{unit:_.H,prefix:x.SHORT[\"\"]},ELECTRIC_CONDUCTANCE:{unit:_.S,prefix:x.SHORT[\"\"]},MAGNETIC_FLUX:{unit:_.Wb,prefix:x.SHORT[\"\"]},MAGNETIC_FLUX_DENSITY:{unit:_.T,prefix:x.SHORT[\"\"]}}};T.cgs=JSON.parse(JSON.stringify(T.si)),T.cgs.LENGTH={unit:_.m,prefix:x.SHORT.c},T.cgs.MASS={unit:_.g,prefix:x.SHORT[\"\"]},T.cgs.FORCE={unit:_.dyn,prefix:x.SHORT[\"\"]},T.cgs.ENERGY={unit:_.erg,prefix:x.NONE[\"\"]},T.us=JSON.parse(JSON.stringify(T.si)),T.us.LENGTH={unit:_.ft,prefix:x.NONE[\"\"]},T.us.MASS={unit:_.lbm,prefix:x.NONE[\"\"]},T.us.TEMPERATURE={unit:_.degF,prefix:x.NONE[\"\"]},T.us.FORCE={unit:_.lbf,prefix:x.NONE[\"\"]},T.us.ENERGY={unit:_.BTU,prefix:x.BTU[\"\"]},T.us.POWER={unit:_.hp,prefix:x.NONE[\"\"]},T.us.PRESSURE={unit:_.psi,prefix:x.NONE[\"\"]},T.auto=JSON.parse(JSON.stringify(T.si));var C=T.auto;o.setUnitSystem=function(e){if(T.hasOwnProperty(e))C=T[e];else{\"Unit system \"+e+\" does not exist. Choices are: \"+listAvailableUnitSystems()}},o.listAvailableUnitSystems=function(){var e=\"\";for(var t in T)e+=\" \"+t;return e.substr(1)},o.getUnitSystem=function(){for(var e in T)if(T[e]===C)return e};for(var w in _){var S=_[w];S.dimensions=S.base.dimensions}for(var z in O)if(O.hasOwnProperty(z)){var S=_[O[z]],B=Object.create(S);B.name=z,_[z]=B}return _.lt=_.l,_.liter=_.litre,_.liters=_.litres,_.lb=_.lbm,_.lbs=_.lbm,o.PREFIXES=x,o.BASE_UNITS=E,o.UNITS=_,o.UNIT_SYSTEMS=T,o}var i=r(6).format,a=r(23).endsWith;t.name=\"Unit\",t.path=\"type\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=r(30),s=a(\"complex\",{\"\":function(){return new e.Complex(0,0)},number:function(t){return new e.Complex(t,0)},\"number, number\":function(t,r){return new e.Complex(t,r)},\"BigNumber, BigNumber\":function(t,r){return new e.Complex(t.toNumber(),r.toNumber())},Complex:function(e){return e.clone()},string:function(t){return e.Complex.parse(t)},Object:function(t){if(\"re\"in t&&\"im\"in t)return new e.Complex(t.re,t.im);if(\"r\"in t&&\"phi\"in t)return e.Complex.fromPolar(t.r,t.phi);throw new Error(\"Expected object with either properties re and im, or properties r and phi.\")},\"Array | Matrix\":function(e){return i(e,s)}});return s.toTex={0:\"0\",1:\"\\\\left(${args[0]}\\\\right)\",2:\"\\\\left(\\\\left(${args[0]}\\\\right)+\"+o.symbols.i+\"\\\\cdot\\\\left(${args[1]}\\\\right)\\\\right)\"},s}var i=r(19);t.name=\"complex\",t.factory=n},function(e,t){\"use strict\";t.symbols={Alpha:\"A\",alpha:\"\\\\alpha\",Beta:\"B\",beta:\"\\\\beta\",Gamma:\"\\\\Gamma\",gamma:\"\\\\gamma\",Delta:\"\\\\Delta\",delta:\"\\\\delta\",Epsilon:\"E\",epsilon:\"\\\\epsilon\",varepsilon:\"\\\\varepsilon\",Zeta:\"Z\",zeta:\"\\\\zeta\",Eta:\"H\",eta:\"\\\\eta\",Theta:\"\\\\Theta\",theta:\"\\\\theta\",vartheta:\"\\\\vartheta\",Iota:\"I\",iota:\"\\\\iota\",Kappa:\"K\",kappa:\"\\\\kappa\",varkappa:\"\\\\varkappa\",Lambda:\"\\\\Lambda\",lambda:\"\\\\lambda\",Mu:\"M\",mu:\"\\\\mu\",Nu:\"N\",nu:\"\\\\nu\",Xi:\"\\\\Xi\",xi:\"\\\\xi\",Omicron:\"O\",omicron:\"o\",Pi:\"\\\\Pi\",pi:\"\\\\pi\",varpi:\"\\\\varpi\",Rho:\"P\",rho:\"\\\\rho\",varrho:\"\\\\varrho\",Sigma:\"\\\\Sigma\",sigma:\"\\\\sigma\",varsigma:\"\\\\varsigma\",Tau:\"T\",tau:\"\\\\tau\",Upsilon:\"\\\\Upsilon\",upsilon:\"\\\\upsilon\",Phi:\"\\\\Phi\",phi:\"\\\\phi\",varphi:\"\\\\varphi\",Chi:\"X\",chi:\"\\\\chi\",Psi:\"\\\\Psi\",psi:\"\\\\psi\",Omega:\"\\\\Omega\",omega:\"\\\\omega\",\"true\":\"\\\\mathrm{True}\",\"false\":\"\\\\mathrm{False}\",i:\"i\",inf:\"\\\\infty\",Inf:\"\\\\infty\",infinity:\"\\\\infty\",Infinity:\"\\\\infty\",oo:\"\\\\infty\",lim:\"\\\\lim\",undefined:\"\\\\mathbf{?}\"},t.operators={transpose:\"^\\\\top\",factorial:\"!\",pow:\"^\",dotPow:\".^\\\\wedge\",unaryPlus:\"+\",unaryMinus:\"-\",bitNot:\"~\",not:\"\\\\neg\",multiply:\"\\\\cdot\",divide:\"\\\\frac\",dotMultiply:\".\\\\cdot\",dotDivide:\".:\",mod:\"\\\\mod\",add:\"+\",subtract:\"-\",to:\"\\\\rightarrow\",leftShift:\"<<\",rightArithShift:\">>\",rightLogShift:\">>>\",equal:\"=\",unequal:\"\\\\neq\",smaller:\"<\",larger:\">\",smallerEq:\"\\\\leq\",largerEq:\"\\\\geq\",bitAnd:\"\\\\&\",bitXor:\"\\\\underline{|}\",bitOr:\"|\",and:\"\\\\wedge\",xor:\"\\\\veebar\",or:\"\\\\vee\"},t.defaultTemplate=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\";var r={deg:\"^\\\\circ\"};t.toSymbol=function(e,n){if(n=\"undefined\"==typeof n?!1:n)return r.hasOwnProperty(e)?r[e]:\"\\\\mathrm{\"+e+\"}\";if(t.symbols.hasOwnProperty(e))return t.symbols[e];if(-1!==e.indexOf(\"_\")){var i=e.indexOf(\"_\");return t.toSymbol(e.substring(0,i))+\"_{\"+t.toSymbol(e.substring(i+1))+\"}\"}return e}},function(e,t,r){e.exports=[r(32),r(36)]},function(e,t,r){function n(e,t,r,n){return i}var i=r(33);i.prototype.type=\"Fraction\",i.prototype.isFraction=!0,i.prototype.toJSON=function(){return{mathjs:\"Fraction\",n:this.s*this.n,d:this.d}},i.fromJSON=function(e){return new i(e)},t.name=\"Fraction\",t.path=\"type\",t.factory=n},function(e,t,r){var n,i;(function(e){/**\n\t * @license Fraction.js v3.0.0 09/09/2015\n\t * http://www.xarg.org/2014/03/precise-calculations-in-javascript/\n\t *\n\t * Copyright (c) 2015, Robert Eisele (robert@xarg.org)\n\t * Dual licensed under the MIT or GPL Version 2 licenses.\n\t **/\n!function(a){\"use strict\";function o(e,t){return isNaN(e=parseInt(e,10))&&s(),e*t}function s(){throw\"Invalid Param\"}function u(e,t){return this instanceof u?(l(e,t),e=u.REDUCE?g(f.d,f.n):1,this.s=f.s,this.n=f.n/e,void(this.d=f.d/e)):new u(e,t)}var c=2e3,f={s:1,n:0,d:1},l=function(e,t){var r,n=0,i=1,a=1,u=0,c=0,l=0,p=1,m=1,h=0,g=1,v=1,d=1,y=1e7;if(void 0===e||null===e);else if(void 0!==t)n=e,i=t,a=n*i;else switch(typeof e){case\"object\":\"d\"in e&&\"n\"in e?(n=e.n,i=e.d,\"s\"in e&&(n*=e.s)):0 in e?(n=e[0],1 in e&&(i=e[1])):s(),a=n*i;break;case\"number\":if(0>e&&(a=e,e=-e),e%1===0)n=e;else if(e>0){for(e>=1&&(m=Math.pow(10,Math.floor(1+Math.log(e)/Math.LN10)),e/=m);y>=g&&y>=d;){if(r=(h+v)/(g+d),e===r){y>=g+d?(n=h+v,i=g+d):d>g?(n=v,i=d):(n=h,i=g);break}e>r?(h+=v,g+=d):(v+=h,d+=g),g>y?(n=v,i=d):(n=h,i=g)}n*=m}break;case\"string\":if(g=e.match(/\\d+|./g),\"-\"===g[h]?(a=-1,h++):\"+\"===g[h]&&h++,g.length===h+1?c=o(g[h++],a):\".\"===g[h+1]||\".\"===g[h]?(\".\"!==g[h]&&(u=o(g[h++],a)),h++,(h+1===g.length||\"(\"===g[h+1]&&\")\"===g[h+3]||\"'\"===g[h+1]&&\"'\"===g[h+3])&&(c=o(g[h],a),p=Math.pow(10,g[h].length),h++),(\"(\"===g[h]&&\")\"===g[h+2]||\"'\"===g[h]&&\"'\"===g[h+2])&&(l=o(g[h+1],a),m=Math.pow(10,g[h+1].length)-1,h+=3)):\"/\"===g[h+1]||\":\"===g[h+1]?(c=o(g[h],a),p=o(g[h+2],1),h+=3):\"/\"===g[h+3]&&\" \"===g[h+1]&&(u=o(g[h],a),c=o(g[h+2],a),p=o(g[h+4],1),h+=5),g.length<=h){a=n=l+m*(u*p+c),i=p*m;break}default:s()}if(!i)throw\"DIV/0\";f.s=0>a?-1:1,f.n=Math.abs(n),f.d=Math.abs(i)},p=function(e,t,r){for(var n=1;t>0;e=e*e%r,t>>=1)1&t&&(n=n*e%r);return n},m=function(e,t){for(;t%2===0;t/=2);for(;t%5===0;t/=5);if(1===t)return 0;for(var r=10%t,n=1;1!==r;n++)if(r=10*r%t,n>c)return 0;return n},h=function(e,t,r){for(var n=1,i=p(10,r,t),a=0;300>a;a++){if(n===i)return a;n=10*n%t,i=10*i%t}return 0},g=function(e,t){if(!e)return t;if(!t)return e;for(;;){if(e%=t,!e)return t;if(t%=e,!t)return e}};u.REDUCE=1,u.prototype={s:1,n:0,d:1,abs:function(){return new u(this.n,this.d)},neg:function(){return new u(-this.s*this.n,this.d)},add:function(e,t){return l(e,t),new u(this.s*this.n*f.d+f.s*this.d*f.n,this.d*f.d)},sub:function(e,t){return l(e,t),new u(this.s*this.n*f.d-f.s*this.d*f.n,this.d*f.d)},mul:function(e,t){return l(e,t),new u(this.s*f.s*this.n*f.n,this.d*f.d)},div:function(e,t){return l(e,t),new u(this.s*f.s*this.n*f.d,this.d*f.n)},clone:function(){return new u(this)},mod:function(e,t){return void 0===e?new u(this.s*this.n%this.d,1):(l(e,t),0===f.n*this.d&&u(0,0),new u(this.s*f.d*this.n%(f.n*this.d),f.d*this.d))},gcd:function(e,t){return l(e,t),new u(g(f.n,this.n),f.d*this.d/g(f.d,this.d))},lcm:function(e,t){return l(e,t),new u(f.n*this.n/g(f.n,this.n),g(f.d,this.d))},ceil:function(){return new u(Math.ceil(this.s*this.n/this.d),1)},floor:function(){return new u(Math.floor(this.s*this.n/this.d),1)},round:function(){return new u(Math.round(this.s*this.n/this.d),1)},inverse:function(){return new u(this.s*this.d,this.n)},pow:function(e){var t=this.d,r=this.n;return 0>e?(this.d=Math.pow(r,-e),this.n=Math.pow(t,-e)):(this.d=Math.pow(t,e),this.n=Math.pow(r,e)),0===e%2&&(this.s=1),this},equals:function(e,t){return l(e,t),this.s*this.n*f.d===f.s*f.n*this.d},compare:function(e,t){l(e,t);var r=this.s*this.n*f.d-f.s*f.n*this.d;return(r>0)-(0>r)},divisible:function(e,t){return l(e,t),!(!(f.n*this.d)||this.n*f.d%(f.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction:function(e){var t,r=\"\",n=this.n,i=this.d;return this.s<0&&(r+=\"-\"),1===i?r+=n:(e&&(t=Math.floor(n/i))>0&&(r+=t,r+=\" \",n%=i),r+=n,r+=\"/\",r+=i),r},toLatex:function(e){var t,r=\"\",n=this.n,i=this.d;return this.s<0&&(r+=\"-\"),1===i?r+=n:(e&&(t=Math.floor(n/i))>0&&(r+=t,n%=i),r+=\"\\\\frac{\",r+=n,r+=\"}{\",r+=i,r+=\"}\"),r},toString:function(){var e,t=this.n,r=this.d;u.REDUCE||(e=g(t,r),t/=e,r/=e);for(var n=String(t).split(\"\"),i=0,a=[~this.s?\"\":\"-\",\"\",\"\"],o=\"\",s=m(t,r),c=h(t,r,s),f=-1,l=1,p=10+s+c+n.length,v=0;p>v;v++,i*=10){if(v<n.length?i+=Number(n[v]):(l=2,f++),s>0)if(f===c)a[l]+=o+\"(\",o=\"\";else if(f===s+c){a[l]+=o+\")\";break}i>=r?(a[l]+=o+(i/r|0),o=\"\",i%=r):l>1?o+=\"0\":a[l]&&(a[l]+=\"0\")}return a[0]+=a[1]||\"0\",a[2]?a[0]+\".\"+a[2]:a[0]}},r(35).amd?(n=[],i=function(){return u}.apply(t,n),!(void 0!==i&&(e.exports=i))):e.exports=u}(this)}).call(t,r(34)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t){e.exports=function(){throw new Error(\"define cannot be used indirect\")}},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"fraction\",{number:function(t){if(!isFinite(t)||isNaN(t))throw new Error(t+\" cannot be represented as a fraction\");return new e.Fraction(t)},string:function(t){return new e.Fraction(t)},\"number, number\":function(t,r){return new e.Fraction(t,r)},Fraction:function(e){return e},Object:function(t){return new e.Fraction(t)},\"Array | Matrix\":function(e){return i(e,a)}});return a}var i=r(19);t.name=\"fraction\",t.factory=n},function(e,t,r){e.exports=[r(38),r(46),r(47),r(49),r(58),r(64),r(65),r(66),r(67),r(51),r(68)]},function(e,t,r){\"use strict\";function n(e,t,r,n){function i(){if(!(this instanceof i))throw new SyntaxError(\"Constructor must be called with the new operator\")}return i.prototype.type=\"Matrix\",i.prototype.isMatrix=!0,i.storage=function(e){if(!o(e))throw new TypeError(\"format must be a string value\");var t=i._storage[e];if(!t)throw new SyntaxError(\"Unsupported matrix storage format: \"+e);return t},i._storage={},i.prototype.storage=function(){throw new Error(\"Cannot invoke storage on a Matrix interface\")},i.prototype.datatype=function(){throw new Error(\"Cannot invoke datatype on a Matrix interface\")},i.prototype.create=function(e,t){throw new Error(\"Cannot invoke create on a Matrix interface\")},i.prototype.subset=function(e,t,r){throw new Error(\"Cannot invoke subset on a Matrix interface\")},i.prototype.get=function(e){throw new Error(\"Cannot invoke get on a Matrix interface\")},i.prototype.set=function(e,t,r){throw new Error(\"Cannot invoke set on a Matrix interface\")},i.prototype.resize=function(e,t){throw new Error(\"Cannot invoke resize on a Matrix interface\")},i.prototype.clone=function(){throw new Error(\"Cannot invoke clone on a Matrix interface\")},i.prototype.size=function(){throw new Error(\"Cannot invoke size on a Matrix interface\")},i.prototype.map=function(e,t){throw new Error(\"Cannot invoke map on a Matrix interface\")},i.prototype.forEach=function(e){throw new Error(\"Cannot invoke forEach on a Matrix interface\")},i.prototype.toArray=function(){throw new Error(\"Cannot invoke toArray on a Matrix interface\")},i.prototype.valueOf=function(){throw new Error(\"Cannot invoke valueOf on a Matrix interface\")},i.prototype.format=function(e){throw new Error(\"Cannot invoke format on a Matrix interface\")},i.prototype.toString=function(){throw new Error(\"Cannot invoke toString on a Matrix interface\")},i}var i=r(39),a=i.string,o=a.isString;t.name=\"Matrix\",t.path=\"type\",t.factory=n},function(e,t,r){\"use strict\";t.array=r(40),t[\"boolean\"]=r(44),t[\"function\"]=r(45),t.number=r(6),t.object=r(3),t.string=r(23),t.types=r(41),t.emitter=r(8)},function(e,t,r){\"use strict\";function n(e,t,r){var i,a=e.length;if(a!=t[r])throw new f(a,t[r]);if(r<t.length-1){var o=r+1;for(i=0;a>i;i++){var s=e[i];if(!Array.isArray(s))throw new f(t.length-1,t.length,\"<\");n(e[i],t,o)}}else for(i=0;a>i;i++)if(Array.isArray(e[i]))throw new f(t.length+1,t.length,\">\")}function i(e,r,n,a){var o,s,u=e.length,f=r[n],l=Math.min(u,f);if(e.length=f,n<r.length-1){var p=n+1;for(o=0;l>o;o++)s=e[o],Array.isArray(s)||(s=[s],e[o]=s),i(s,r,p,a);for(o=l;f>o;o++)s=[],e[o]=s,i(s,r,p,a)}else{for(o=0;l>o;o++)for(;Array.isArray(e[o]);)e[o]=e[o][0];if(a!==t.UNINITIALIZED)for(o=l;f>o;o++)e[o]=c.clone(a)}}function a(e,t,r){var n,i;if(t>r){var o=r+1;for(n=0,i=e.length;i>n;n++)e[n]=a(e[n],t,o)}else for(;Array.isArray(e);)e=e[0];return e}function o(e,t,r){var n,i;if(Array.isArray(e)){var a=r+1;for(n=0,i=e.length;i>n;n++)e[n]=o(e[n],t,a)}else for(var s=r;t>s;s++)e=[e];return e}var s=r(6),u=r(23),c=r(3),f=(r(41),r(42)),l=r(43);t.size=function(e){for(var t=[];Array.isArray(e);)t.push(e.length),e=e[0];return t},t.validate=function(e,t){var r=0==t.length;if(r){if(Array.isArray(e))throw new f(e.length,0)}else n(e,t,0)},t.validateIndex=function(e,t){if(!s.isNumber(e)||!s.isInteger(e))throw new TypeError(\"Index must be an integer (value: \"+e+\")\");if(0>e)throw new l(e);if(void 0!==t&&e>=t)throw new l(e,t)},t.UNINITIALIZED={},t.resize=function(e,t,r){if(!Array.isArray(e)||!Array.isArray(t))throw new TypeError(\"Array expected\");if(0===t.length)throw new Error(\"Resizing to scalar is not supported\");t.forEach(function(e){if(!s.isNumber(e)||!s.isInteger(e)||0>e)throw new TypeError(\"Invalid size, must contain positive integers (size: \"+u.format(t)+\")\")});var n=void 0!==r?r:0;return i(e,t,0,n),e},t.squeeze=function(e,r){for(var n=r||t.size(e);Array.isArray(e)&&1===e.length;)e=e[0],n.shift();for(var i=n.length;1===n[i-1];)i--;return i<n.length&&(e=a(e,i,0),n.length=i),e},t.unsqueeze=function(e,r,n,i){var a=i||t.size(e);if(n)for(var s=0;n>s;s++)e=[e],a.unshift(1);for(e=o(e,r,0);a.length<r;)a.push(1);return e},t.flatten=function(e){if(!Array.isArray(e))return e;var t=[];return e.forEach(function r(e){Array.isArray(e)?e.forEach(r):t.push(e)}),t},t.isArray=Array.isArray},function(e,t){\"use strict\";t.type=function(e){var t=typeof e;return\"object\"===t?null===e?\"null\":e instanceof Boolean?\"boolean\":e instanceof Number?\"number\":e instanceof String?\"string\":Array.isArray(e)?\"Array\":e instanceof Date?\"Date\":e instanceof RegExp?\"RegExp\":\"Object\":\"function\"===t?\"Function\":t}},function(e,t){\"use strict\";function r(e,t,n){if(!(this instanceof r))throw new SyntaxError(\"Constructor must be called with the new operator\");this.actual=e,this.expected=t,this.relation=n,this.message=\"Dimension mismatch (\"+(Array.isArray(e)?\"[\"+e.join(\", \")+\"]\":e)+\" \"+(this.relation||\"!=\")+\" \"+(Array.isArray(t)?\"[\"+t.join(\", \")+\"]\":t)+\")\",this.stack=(new Error).stack}r.prototype=new RangeError,r.prototype.constructor=RangeError,r.prototype.name=\"DimensionError\",r.prototype.isDimensionError=!0,e.exports=r},function(e,t){\"use strict\";function r(e,t,n){if(!(this instanceof r))throw new SyntaxError(\"Constructor must be called with the new operator\");this.index=e,arguments.length<3?(this.min=0,this.max=t):(this.min=t,this.max=n),void 0!==this.min&&this.index<this.min?this.message=\"Index out of range (\"+this.index+\" < \"+this.min+\")\":void 0!==this.max&&this.index>=this.max?this.message=\"Index out of range (\"+this.index+\" > \"+(this.max-1)+\")\":this.message=\"Index out of range (\"+this.index+\")\",this.stack=(new Error).stack}r.prototype=new RangeError,r.prototype.constructor=RangeError,r.prototype.name=\"IndexError\",r.prototype.isIndexError=!0,e.exports=r},function(e,t){\"use strict\";t.isBoolean=function(e){return\"boolean\"==typeof e}},function(e,t){t.memoize=function(e,t){return function r(){\"object\"!=typeof r.cache&&(r.cache={});for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var a=t?t(n):JSON.stringify(n);return a in r.cache?r.cache[a]:r.cache[a]=e.apply(e,n)}}},function(e,t,r){\"use strict\";function n(e,t,n,c){function g(e,t){if(!(this instanceof g))throw new SyntaxError(\"Constructor must be called with the new operator\");if(t&&!m(t))throw new Error(\"Invalid datatype: \"+t);if(e&&e.isMatrix===!0)\"DenseMatrix\"===e.type?(this._data=u.clone(e._data),this._size=u.clone(e._size),this._datatype=t||e._datatype):(this._data=e.toArray(),this._size=e.size(),this._datatype=t||e._datatype);else if(e&&f(e.data)&&f(e.size))this._data=e.data,this._size=e.size,this._datatype=t||e.datatype;else if(f(e))this._data=b(e),this._size=s.size(this._data),s.validate(this._data,this._size),this._datatype=t;else{if(e)throw new TypeError(\"Unsupported type of data (\"+i.types.type(e)+\")\");this._data=[],this._size=[0],this._datatype=t}}function v(e,t){if(!t||t.isIndex!==!0)throw new TypeError(\"Invalid index\");var r=t.isScalar();if(r)return e.get(t.min());var n=t.size();if(n.length!=e._size.length)throw new a(n.length,e._size.length);for(var i=t.min(),o=t.max(),s=0,u=e._size.length;u>s;s++)h(i[s],e._size[s]),h(o[s],e._size[s]);return new g(d(e._data,t,n.length,0),e._datatype)}function d(e,t,r,n){var i=n==r-1,a=t.dimension(n);return i?a.map(function(t){return e[t]}).valueOf():a.map(function(i){var a=e[i];return d(a,t,r,n+1)}).valueOf()}function y(e,t,r,n){if(!t||t.isIndex!==!0)throw new TypeError(\"Invalid index\");var i,o=t.size(),c=t.isScalar();if(r&&r.isMatrix===!0?(i=r.size(),r=r.valueOf()):i=s.size(r),c){if(0!==i.length)throw new TypeError(\"Scalar expected\");e.set(t.min(),r,n)}else{if(o.length<e._size.length)throw new a(o.length,e._size.length,\"<\");if(i.length<o.length){for(var f=0,l=0;1===o[f]&&1===i[f];)f++;for(;1===o[f];)l++,f++;r=s.unsqueeze(r,o.length,l,i)}if(!u.deepEqual(o,i))throw new a(o,i,\">\");var p=t.max().map(function(e){return e+1});w(e,p,n);var m=o.length,h=0;x(e._data,t,r,m,h)}return e}function x(e,t,r,n,i){var a=i==n-1,o=t.dimension(i);a?o.forEach(function(t,n){h(t),e[t]=r[n[0]]}):o.forEach(function(a,o){h(a),x(e[a],t,r[o[0]],n,i+1)})}function w(e,t,r){for(var n=u.clone(e._size),i=!1;n.length<t.length;)n.push(0),i=!0;for(var a=0,o=t.length;o>a;a++)t[a]>n[a]&&(n[a]=t[a],i=!0);i&&E(e,n,r)}function b(e){for(var t=0,r=e.length;r>t;t++){var n=e[t];f(n)?e[t]=b(n):n&&n.isMatrix===!0&&(e[t]=b(n.valueOf()))}return e}var N=n(r(38));g.prototype=new N,g.prototype.type=\"DenseMatrix\",g.prototype.isDenseMatrix=!0,g.prototype.storage=function(){return\"dense\"},g.prototype.datatype=function(){return this._datatype},g.prototype.create=function(e,t){return new g(e,t)},g.prototype.subset=function(e,t,r){switch(arguments.length){case 1:return v(this,e);case 2:case 3:return y(this,e,t,r);default:throw new SyntaxError(\"Wrong number of arguments\")}},g.prototype.get=function(e){if(!f(e))throw new TypeError(\"Array expected\");if(e.length!=this._size.length)throw new a(e.length,this._size.length);for(var t=0;t<e.length;t++)h(e[t],this._size[t]);for(var r=this._data,n=0,i=e.length;i>n;n++){var o=e[n];h(o,r.length),r=r[o]}return u.clone(r)},g.prototype.set=function(e,t,r){if(!f(e))throw new TypeError(\"Array expected\");if(e.length<this._size.length)throw new a(e.length,this._size.length,\"<\");var n,i,o,s=e.map(function(e){return e+1});w(this,s,r);var u=this._data;for(n=0,i=e.length-1;i>n;n++)o=e[n],h(o,u.length),u=u[o];return o=e[e.length-1],h(o,u.length),u[o]=t,this},g.prototype.resize=function(e,t,r){if(!f(e))throw new TypeError(\"Array expected\");var n=r?this.clone():this;return E(n,e,t)};var E=function(e,t,r){if(0===t.length){for(var n=e._data;f(n);)n=n[0];return u.clone(n)}return e._size=u.clone(t),e._data=s.resize(e._data,e._size,r),e};return g.prototype.clone=function(){var e=new g({data:u.clone(this._data),size:u.clone(this._size),datatype:this._datatype});return e},g.prototype.size=function(){return this._size},g.prototype.map=function(e){var t=this,r=function(n,i){return f(n)?n.map(function(e,t){return r(e,i.concat(t))}):e(n,i,t)};return new g({data:r(this._data,[]),size:u.clone(this._size),datatype:this._datatype})},g.prototype.forEach=function(e){var t=this,r=function(n,i){f(n)?n.forEach(function(e,t){r(e,i.concat(t))}):e(n,i,t)};r(this._data,[])},g.prototype.toArray=function(){return u.clone(this._data)},g.prototype.valueOf=function(){return this._data},g.prototype.format=function(e){return o.format(this._data,e)},g.prototype.toString=function(){return o.format(this._data)},g.prototype.toJSON=function(){return{mathjs:\"DenseMatrix\",data:this._data,size:this._size,datatype:this._datatype}},g.prototype.diagonal=function(e){if(e){if(e.isBigNumber===!0&&(e=e.toNumber()),!l(e)||!p(e))throw new TypeError(\"The parameter k must be an integer number\")}else e=0;for(var t=e>0?e:0,r=0>e?-e:0,n=this._size[0],i=this._size[1],a=Math.min(n-r,i-t),o=[],s=0;a>s;s++)o[s]=u.clone(this._data[s+r][s+t]);return new g({data:o,size:[a],datatype:this._datatype})},g.diagonal=function(t,r,n,i,a){if(!f(t))throw new TypeError(\"Array expected, size parameter\");if(2!==t.length)throw new Error(\"Only two dimensions matrix are supported\");if(t=t.map(function(e){if(e&&e.isBigNumber===!0&&(e=e.toNumber()),!l(e)||!p(e)||1>e)throw new Error(\"Size values must be positive integers\");return e}),n){if(n&&n.isBigNumber===!0&&(n=n.toNumber()),!l(n)||!p(n))throw new TypeError(\"The parameter k must be an integer number\")}else n=0;i&&m(a)&&(i=c.convert(i,a));var o,u=n>0?n:0,h=0>n?-n:0,v=t[0],d=t[1],y=Math.min(v-h,d-u);if(f(r)){if(r.length!==y)throw new Error(\"Invalid value array length\");o=function(e){return r[e]}}else if(r&&r.isMatrix===!0){var x=r.size();if(1!==x.length||x[0]!==y)throw new Error(\"Invalid matrix length\");o=function(e){return r.get([e])}}else o=function(){return r};i||(i=o(0)&&o(0).isBigNumber===!0?new e.BigNumber(0):0);var w=[];if(t.length>0){w=s.resize(w,t,i);for(var b=0;y>b;b++)w[b+h][b+u]=o(b)}return new g({data:w,size:[v,d]})},g.fromJSON=function(e){return new g(e)},g.prototype.swapRows=function(e,t){if(!(l(e)&&p(e)&&l(t)&&p(t)))throw new Error(\"Row index must be positive integers\");if(2!==this._size.length)throw new Error(\"Only two dimensional matrix is supported\");return h(e,this._size[0]),h(t,this._size[0]),g._swapRows(e,t,this._data),this},g._swapRows=function(e,t,r){var n=r[e];r[e]=r[t],r[t]=n},e.Matrix._storage.dense=g,e.Matrix._storage[\"default\"]=g,g}var i=r(39),a=r(42),o=i.string,s=i.array,u=i.object,c=i.number,f=Array.isArray,l=c.isNumber,p=c.isInteger,m=o.isString,h=s.validateIndex;t.name=\"DenseMatrix\",t.path=\"type\",t.factory=n,t.lazy=!1},function(e,t,r){\"use strict\";function n(e,t,n,g){function v(e,t){if(!(this instanceof v))throw new SyntaxError(\"Constructor must be called with the new operator\");if(t&&!m(t))throw new Error(\"Invalid datatype: \"+t);if(e&&e.isMatrix===!0)x(this,e,t);else if(e&&f(e.index)&&f(e.ptr)&&f(e.size))this._values=e.values,this._index=e.index,this._ptr=e.ptr,this._size=e.size,this._datatype=t||e.datatype;else if(f(e))w(this,e,t);else{if(e)throw new TypeError(\"Unsupported type of data (\"+i.types.type(e)+\")\");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=t}}var d=n(r(38)),y=n(r(48)),x=function(e,t,r){\"SparseMatrix\"===t.type?(e._values=t._values?s.clone(t._values):void 0,e._index=s.clone(t._index),e._ptr=s.clone(t._ptr),e._size=s.clone(t._size),e._datatype=r||t._datatype):w(e,t.valueOf(),r||t._datatype)},w=function(e,t,r){e._values=[],e._index=[],e._ptr=[],e._datatype=r;var n=t.length,i=0,a=y,o=0;if(m(r)&&(a=g.find(y,[r,r])||y,o=g.convert(0,r)),n>0){var s=0;do{e._ptr.push(e._index.length);for(var u=0;n>u;u++){var c=t[u];if(f(c)){if(0===s&&i<c.length&&(i=c.length),s<c.length){var l=c[s];a(l,o)||(e._values.push(l),e._index.push(u))}}else 0===s&&1>i&&(i=1),a(c,o)||(e._values.push(c),e._index.push(u))}s++}while(i>s)}e._ptr.push(e._index.length),e._size=[n,i]};v.prototype=new d,v.prototype.type=\"SparseMatrix\",v.prototype.isSparseMatrix=!0,v.prototype.storage=function(){return\"sparse\"},v.prototype.datatype=function(){return this._datatype},v.prototype.create=function(e,t){return new v(e,t)},v.prototype.density=function(){var e=this._size[0],t=this._size[1];return 0!==e&&0!==t?this._index.length/(e*t):0},v.prototype.subset=function(e,t,r){if(!this._values)throw new Error(\"Cannot invoke subset on a Pattern only matrix\");switch(arguments.length){case 1:return b(this,e);case 2:case 3:return N(this,e,t,r);default:throw new SyntaxError(\"Wrong number of arguments\")}};var b=function(e,t){if(!t||t.isIndex!==!0)throw new TypeError(\"Invalid index\");var r=t.isScalar();if(r)return e.get(t.min());var n=t.size();if(n.length!=e._size.length)throw new a(n.length,e._size.length);var i,o,s,u,c=t.min(),f=t.max();for(i=0,o=e._size.length;o>i;i++)h(c[i],e._size[i]),h(f[i],e._size[i]);var l=e._values,p=e._index,m=e._ptr,g=t.dimension(0),d=t.dimension(1),y=[],x=[];g.forEach(function(e,t){x[e]=t[0],y[e]=!0});var w=l?[]:void 0,b=[],N=[];return d.forEach(function(e){for(N.push(b.length),s=m[e],u=m[e+1];u>s;s++)i=p[s],y[i]===!0&&(b.push(x[i]),w&&w.push(l[s]))}),N.push(b.length),new v({values:w,index:b,ptr:N,size:n,datatype:e._datatype})},N=function(e,t,r,n){if(!t||t.isIndex!==!0)throw new TypeError(\"Invalid index\");var i,u=t.size(),c=t.isScalar();if(r&&r.isMatrix===!0?(i=r.size(),r=r.toArray()):i=o.size(r),c){if(0!==i.length)throw new TypeError(\"Scalar expected\");e.set(t.min(),r,n)}else{if(1!==u.length&&2!==u.length)throw new a(u.length,e._size.length,\"<\");if(i.length<u.length){for(var f=0,l=0;1===u[f]&&1===i[f];)f++;for(;1===u[f];)l++,f++;r=o.unsqueeze(r,u.length,l,i)}if(!s.deepEqual(u,i))throw new a(u,i,\">\");for(var p=t.min()[0],m=t.min()[1],h=i[0],g=i[1],v=0;h>v;v++)for(var d=0;g>d;d++){var y=r[v][d];e.set([v+p,d+m],y,n)}}return e};v.prototype.get=function(e){if(!f(e))throw new TypeError(\"Array expected\");if(e.length!=this._size.length)throw new a(e.length,this._size.length);if(!this._values)throw new Error(\"Cannot invoke get on a Pattern only matrix\");var t=e[0],r=e[1];h(t,this._size[0]),h(r,this._size[1]);var n=E(t,this._ptr[r],this._ptr[r+1],this._index);return n<this._ptr[r+1]&&this._index[n]===t?s.clone(this._values[n]):0},v.prototype.set=function(e,t,r){if(!f(e))throw new TypeError(\"Array expected\");if(e.length!=this._size.length)throw new a(e.length,this._size.length);if(!this._values)throw new Error(\"Cannot invoke set on a Pattern only matrix\");var n=e[0],i=e[1],o=this._size[0],s=this._size[1],u=y,c=0;m(this._datatype)&&(u=g.find(y,[this._datatype,this._datatype])||y,c=g.convert(0,this._datatype)),(n>o-1||i>s-1)&&(_(this,Math.max(n+1,o),Math.max(i+1,s),r),o=this._size[0],s=this._size[1]),h(n,o),h(i,s);var l=E(n,this._ptr[i],this._ptr[i+1],this._index);return l<this._ptr[i+1]&&this._index[l]===n?u(t,c)?M(l,i,this._values,this._index,this._ptr):this._values[l]=t:A(l,n,i,t,this._values,this._index,this._ptr),this};var E=function(e,t,r,n){if(r-t===0)return r;for(var i=t;r>i;i++)if(n[i]===e)return i;return t},M=function(e,t,r,n,i){r.splice(e,1),n.splice(e,1);for(var a=t+1;a<i.length;a++)i[a]--},A=function(e,t,r,n,i,a,o){i.splice(e,0,n),a.splice(e,0,t);for(var s=r+1;s<o.length;s++)o[s]++};v.prototype.resize=function(e,t,r){if(!f(e))throw new TypeError(\"Array expected\");if(2!==e.length)throw new Error(\"Only two dimensions matrix are supported\");e.forEach(function(t){if(!c.isNumber(t)||!c.isInteger(t)||0>t)throw new TypeError(\"Invalid size, must contain positive integers (size: \"+u.format(e)+\")\")});var n=r?this.clone():this;return _(n,e[0],e[1],t)};var _=function(e,t,r,n){var i=n||0,a=y,o=0;m(e._datatype)&&(a=g.find(y,[e._datatype,e._datatype])||y,o=g.convert(0,e._datatype),i=g.convert(i,e._datatype));var s,u,c,f=!a(i,o),l=e._size[0],p=e._size[1];if(r>p){for(u=p;r>u;u++)if(e._ptr[u]=e._values.length,f)for(s=0;l>s;s++)e._values.push(i),e._index.push(s);e._ptr[r]=e._values.length}else p>r&&(e._ptr.splice(r+1,p-r),e._values.splice(e._ptr[r],e._values.length),e._index.splice(e._ptr[r],e._index.length));if(p=r,t>l){if(f){var h=0;for(u=0;p>u;u++){e._ptr[u]=e._ptr[u]+h,c=e._ptr[u+1]+h;var v=0;for(s=l;t>s;s++,v++)e._values.splice(c+v,0,i),e._index.splice(c+v,0,s),h++}e._ptr[p]=e._values.length}}else if(l>t){var d=0;for(u=0;p>u;u++){e._ptr[u]=e._ptr[u]-d;var x=e._ptr[u],w=e._ptr[u+1]-d;for(c=x;w>c;c++)s=e._index[c],s>t-1&&(e._values.splice(c,1),e._index.splice(c,1),d++)}e._ptr[u]=e._values.length}return e._size[0]=t,e._size[1]=r,e};v.prototype.clone=function(){var e=new v({values:this._values?s.clone(this._values):void 0,index:s.clone(this._index),ptr:s.clone(this._ptr),size:s.clone(this._size),datatype:this._datatype});return e},v.prototype.size=function(){return s.clone(this._size)},v.prototype.map=function(e,t){if(!this._values)throw new Error(\"Cannot invoke map on a Pattern only matrix\");var r=this,n=this._size[0],i=this._size[1],a=function(t,n,i){return e(t,[n,i],r)};return O(this,0,n-1,0,i-1,a,t)};var O=function(e,t,r,n,i,a,o){var s=[],u=[],c=[],f=y,l=0;m(e._datatype)&&(f=g.find(y,[e._datatype,e._datatype])||y,l=g.convert(0,e._datatype));for(var p=function(e,t,r){e=a(e,t,r),f(e,l)||(s.push(e),u.push(t))},h=n;i>=h;h++){c.push(s.length);for(var d=e._ptr[h],x=e._ptr[h+1],w=t,b=d;x>b;b++){var N=e._index[b];if(N>=t&&r>=N){if(!o)for(var E=w;N>E;E++)p(0,E-t,h-n);p(e._values[b],N-t,h-n)}w=N+1}if(!o)for(var M=w;r>=M;M++)p(0,M-t,h-n)}return c.push(s.length),new v({values:s,index:u,ptr:c,size:[r-t+1,i-n+1]})};v.prototype.forEach=function(e,t){if(!this._values)throw new Error(\"Cannot invoke forEach on a Pattern only matrix\");for(var r=this,n=this._size[0],i=this._size[1],a=0;i>a;a++){for(var o=this._ptr[a],s=this._ptr[a+1],u=0,c=o;s>c;c++){var f=this._index[c];if(!t)for(var l=u;f>l;l++)e(0,[l,a],r);e(this._values[c],[f,a],r),u=f+1}if(!t)for(var p=u;n>p;p++)e(0,[p,a],r)}},v.prototype.toArray=function(){return T(this._values,this._index,this._ptr,this._size,!0)},v.prototype.valueOf=function(){return T(this._values,this._index,this._ptr,this._size,!1)};var T=function(e,t,r,n,i){var a,o,u=n[0],c=n[1],f=[];for(a=0;u>a;a++)for(f[a]=[],o=0;c>o;o++)f[a][o]=0;for(o=0;c>o;o++)for(var l=r[o],p=r[o+1],m=l;p>m;m++)a=t[m],f[a][o]=e?i?s.clone(e[m]):e[m]:1;return f};return v.prototype.format=function(e){for(var t=this._size[0],r=this._size[1],n=this.density(),i=\"Sparse Matrix [\"+u.format(t,e)+\" x \"+u.format(r,e)+\"] density: \"+u.format(n,e)+\"\\n\",a=0;r>a;a++)for(var o=this._ptr[a],s=this._ptr[a+1],c=o;s>c;c++){var f=this._index[c];i+=\"\\n (\"+u.format(f,e)+\", \"+u.format(a,e)+\") ==> \"+(this._values?u.format(this._values[c],e):\"X\")}return i},v.prototype.toString=function(){return u.format(this.toArray())},v.prototype.toJSON=function(){return{mathjs:\"SparseMatrix\",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},v.prototype.diagonal=function(e){if(e){if(e.isBigNumber===!0&&(e=e.toNumber()),!l(e)||!p(e))throw new TypeError(\"The parameter k must be an integer number\")}else e=0;var t=e>0?e:0,r=0>e?-e:0,n=this._size[0],i=this._size[1],a=Math.min(n-r,i-t),o=[],u=[],c=[];c[0]=0;for(var f=t;i>f&&o.length<a;f++)for(var m=this._ptr[f],h=this._ptr[f+1],g=m;h>g;g++){var d=this._index[g];if(d===f-t+r){o.push(s.clone(this._values[g])),u[o.length-1]=d-r;break}}return c.push(o.length),new v({values:o,index:u,ptr:c,size:[a,1]})},v.fromJSON=function(e){return new v(e)},v.diagonal=function(e,t,r,n,i){if(!f(e))throw new TypeError(\"Array expected, size parameter\");if(2!==e.length)throw new Error(\"Only two dimensions matrix are supported\");if(e=e.map(function(e){if(e&&e.isBigNumber===!0&&(e=e.toNumber()),!l(e)||!p(e)||1>e)throw new Error(\"Size values must be positive integers\");return e}),r){if(r.isBigNumber===!0&&(r=r.toNumber()),!l(r)||!p(r))throw new TypeError(\"The parameter k must be an integer number\")}else r=0;var a=y,o=0;m(i)&&(a=g.find(y,[i,i])||y,o=g.convert(0,i));var s,u=r>0?r:0,c=0>r?-r:0,h=e[0],d=e[1],x=Math.min(h-c,d-u);if(f(t)){if(t.length!==x)throw new Error(\"Invalid value array length\");s=function(e){return t[e]}}else if(t&&t.isMatrix===!0){var w=t.size();if(1!==w.length||w[0]!==x)throw new Error(\"Invalid matrix length\");s=function(e){return t.get([e])}}else s=function(){return t};for(var b=[],N=[],E=[],M=0;d>M;M++){E.push(b.length);var A=M-u;if(A>=0&&x>A){var _=s(A);a(_,o)||(N.push(A+c),b.push(_))}}return E.push(b.length),new v({values:b,index:N,ptr:E,size:[h,d]})},v.prototype.swapRows=function(e,t){if(!(l(e)&&p(e)&&l(t)&&p(t)))throw new Error(\"Row index must be positive integers\");if(2!==this._size.length)throw new Error(\"Only two dimensional matrix is supported\");return h(e,this._size[0]),h(t,this._size[0]),v._swapRows(e,t,this._size[1],this._values,this._index,this._ptr),this},v._forEachRow=function(e,t,r,n,i){for(var a=n[e],o=n[e+1],s=a;o>s;s++)i(r[s],t[s])},v._swapRows=function(e,t,r,n,i,a){for(var o=0;r>o;o++){var s=a[o],u=a[o+1],c=E(e,s,u,i),f=E(t,s,u,i);if(u>c&&u>f&&i[c]===e&&i[f]===t){if(n){var l=n[c];n[c]=n[f],n[f]=l}}else if(u>c&&i[c]===e&&(f>=u||i[f]!==t)){var p=n?n[c]:void 0;i.splice(f,0,t),n&&n.splice(f,0,p),i.splice(c>=f?c+1:c,1),n&&n.splice(c>=f?c+1:c,1)}else if(u>f&&i[f]===t&&(c>=u||i[c]!==e)){var m=n?n[f]:void 0;i.splice(c,0,e),n&&n.splice(c,0,m),i.splice(f>=c?f+1:f,1),n&&n.splice(f>=c?f+1:f,1)}}},e.Matrix._storage.sparse=v,v}var i=r(39),a=r(42),o=i.array,s=i.object,u=i.string,c=i.number,f=Array.isArray,l=c.isNumber,p=c.isInteger,m=u.isString,h=o.validateIndex;t.name=\"SparseMatrix\",t.path=\"type\",t.factory=n,t.lazy=!1},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"equalScalar\",{\"boolean, boolean\":function(e,t){return e===t},\"number, number\":function(e,r){return e===r||i(e,r,t.epsilon)},\"BigNumber, BigNumber\":function(e,t){return e.eq(t)},\"Fraction, Fraction\":function(e,t){return e.equals(t)},\"Complex, Complex\":function(e,r){return(e.re===r.re||i(e.re,r.re,t.epsilon))&&(e.im===r.im||i(e.im,r.im,t.epsilon))},\"Unit, Unit\":function(e,r){if(!e.equalBase(r))throw new Error(\"Cannot compare units with different base\");return e.value===r.value||i(e.value,r.value,t.epsilon)},\"string, string\":function(e,t){return e===t}});return a}var i=r(6).nearlyEqual;t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n){function i(){if(!(this instanceof i))throw new SyntaxError(\"Constructor must be called with the new operator\");this._values=[],this._heap=new e.FibonacciHeap}var a=n(r(50)),o=n(r(48));return i.prototype.type=\"Spa\",i.prototype.isSpa=!0,i.prototype.set=function(e,t){if(this._values[e])this._values[e].value=t;else{var r=this._heap.insert(e,t);this._values[e]=r}},i.prototype.get=function(e){var t=this._values[e];return t?t.value:0},i.prototype.accumulate=function(e,t){var r=this._values[e];r?r.value=a(r.value,t):(r=this._heap.insert(e,t),this._values[e]=r)},i.prototype.forEach=function(e,t,r){var n=this._heap,i=this._values,a=[],s=n.extractMinimum();for(s&&a.push(s);s&&s.key<=t;)s.key>=e&&(o(s.value,0)||r(s.key,s.value,this)),s=n.extractMinimum(),s&&a.push(s);for(var u=0;u<a.length;u++){var c=a[u];s=n.insert(c.key,c.value),i[s.key]=s}},i.prototype.swap=function(e,t){var r=this._values[e],n=this._values[t];if(!r&&n)r=this._heap.insert(e,n.value),this._heap.remove(n),this._values[e]=r,this._values[t]=void 0;else if(r&&!n)n=this._heap.insert(t,r.value),this._heap.remove(r),this._values[t]=n,this._values[e]=void 0;else if(r&&n){var i=r.value;r.value=n.value,n.value=i}},i}t.name=\"Spa\",t.path=\"type\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(51)),s=n(r(52)),u=r(30),c=n(r(53)),f=n(r(54)),l=n(r(55)),p=n(r(56)),m=n(r(57)),h=a(\"add\",i({\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=f(e,t,s);break;default:r=c(t,e,s,!0)}break;default:switch(t.storage()){case\"sparse\":r=c(e,t,s,!1);break;default:r=p(e,t,s)}}return r},\"Array, Array\":function(e,t){return h(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return h(o(e),t)},\"Matrix, Array\":function(e,t){return h(e,o(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=l(e,t,s,!1);break;default:r=m(e,t,s,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=l(t,e,s,!0);break;default:r=m(t,e,s,!0)}return r},\"Array, any\":function(e,t){return m(o(e),t,s,!1).valueOf()},\"any, Array\":function(e,t){return m(o(t),e,s,!0).valueOf()}},s.signatures));return h.toTex=\"\\\\left(${args[0]}\"+u.operators.add+\"${args[1]}\\\\right)\",h}var i=r(3).extend;t.name=\"add\",t.factory=n},function(e,t){\"use strict\";function r(e,t,r,n){function i(t,r,n){var i=e.Matrix.storage(r||\"default\");return new i(t,n)}var a=n(\"matrix\",{\"\":function(){return i([])},string:function(e){return i([],e)},\"string, string\":function(e,t){return i([],e,t)},Array:function(e){return i(e)},Matrix:function(e){return i(e,e.storage())},\"Array | Matrix, string\":i,\"Array | Matrix, string, string\":i});return a.toTex={0:\"\\\\begin{bmatrix}\\\\end{bmatrix}\",1:\"\\\\left(${args[0]}\\\\right)\",2:\"\\\\left(${args[0]}\\\\right)\"},a}t.name=\"matrix\",t.factory=r},function(e,t){\"use strict\";function r(e,t,r,n){return n(\"add\",{\"number, number\":function(e,t){return e+t},\"Complex, Complex\":function(t,r){return new e.Complex(t.re+r.re,t.im+r.im);\n},\"BigNumber, BigNumber\":function(e,t){return e.plus(t)},\"Fraction, Fraction\":function(e,t){return e.add(t)},\"Unit, Unit\":function(e,t){if(null==e.value)throw new Error(\"Parameter x contains a unit with undefined value\");if(null==t.value)throw new Error(\"Parameter y contains a unit with undefined value\");if(!e.equalBase(t))throw new Error(\"Units do not match\");var r=e.clone();return r.value+=t.value,r.fixPrefix=!1,r}})}t.factory=r},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=e.DenseMatrix,o=function(e,t,r,o){var s=e._data,u=e._size,c=e._datatype,f=t._values,l=t._index,p=t._ptr,m=t._size,h=t._datatype;if(u.length!==m.length)throw new i(u.length,m.length);if(u[0]!==m[0]||u[1]!==m[1])throw new RangeError(\"Dimension mismatch. Matrix A (\"+u+\") must match Matrix B (\"+m+\")\");if(!f)throw new Error(\"Cannot perform operation on Dense Matrix and Pattern Sparse Matrix\");var g,v,d=u[0],y=u[1],x=\"string\"==typeof c&&c===h?c:void 0,w=x?n.find(r,[x,x]):r,b=[];for(g=0;d>g;g++)b[g]=[];var N=[],E=[];for(v=0;y>v;v++){for(var M=v+1,A=p[v],_=p[v+1],O=A;_>O;O++)g=l[O],N[g]=o?w(f[O],s[g][v]):w(s[g][v],f[O]),E[g]=M;for(g=0;d>g;g++)E[g]===M?b[g][v]=N[g]:b[g][v]=s[g][v]}return new a({data:b,size:[d,y],datatype:x})};return o}var i=r(42);t.name=\"algorithm01\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(48)),s=e.SparseMatrix,u=function(e,t,r){var n=e._values,u=e._index,c=e._ptr,f=e._size,l=e._datatype,p=t._values,m=t._index,h=t._ptr,g=t._size,v=t._datatype;if(f.length!==g.length)throw new i(f.length,g.length);if(f[0]!==g[0]||f[1]!==g[1])throw new RangeError(\"Dimension mismatch. Matrix A (\"+f+\") must match Matrix B (\"+g+\")\");var d,y=f[0],x=f[1],w=o,b=0,N=r;\"string\"==typeof l&&l===v&&(d=l,w=a.find(o,[d,d]),b=a.convert(0,d),N=a.find(r,[d,d]));var E,M,A,_,O,T=n&&p?[]:void 0,C=[],S=[],z=new s({values:T,index:C,ptr:S,size:[y,x],datatype:d}),B=n&&p?[]:void 0,k=n&&p?[]:void 0,I=[],R=[];for(M=0;x>M;M++){S[M]=C.length;var P=M+1;for(_=c[M],O=c[M+1],A=_;O>A;A++)E=u[A],C.push(E),I[E]=P,B&&(B[E]=n[A]);for(_=h[M],O=h[M+1],A=_;O>A;A++)if(E=m[A],I[E]===P){if(B){var U=N(B[E],p[A]);w(U,b)?I[E]=null:B[E]=U}}else C.push(E),R[E]=P,k&&(k[E]=p[A]);if(B&&k)for(A=S[M];A<C.length;)E=C[A],I[E]===P?(T[A]=B[E],A++):R[E]===P?(T[A]=k[E],A++):C.splice(A,1)}return S[x]=C.length,z};return u}var i=r(42);t.name=\"algorithm04\",t.factory=n},function(e,t){\"use strict\";function r(e,t,r,n){var i=e.DenseMatrix,a=function(e,t,r,a){var o=e._values,s=e._index,u=e._ptr,c=e._size,f=e._datatype;if(!o)throw new Error(\"Cannot perform operation on Pattern Sparse Matrix and Scalar value\");var l,p=c[0],m=c[1],h=r;\"string\"==typeof f&&(l=f,t=n.convert(t,l),h=n.find(r,[l,l]));for(var g=[],v=new i({data:g,size:[p,m],datatype:l}),d=[],y=[],x=0;m>x;x++){for(var w=x+1,b=u[x],N=u[x+1],E=b;N>E;E++){var M=s[E];d[M]=o[E],y[M]=w}for(var A=0;p>A;A++)0===x&&(g[A]=[]),y[A]===w?g[A][x]=a?h(t,d[A]):h(d[A],t):g[A][x]=t}return v};return a}t.name=\"algorithm10\",t.factory=r},function(e,t,r){\"use strict\";function n(e,t,r,n){var i=e.DenseMatrix,o=function(e,t,r){var o=e._data,u=e._size,c=e._datatype,f=t._data,l=t._size,p=t._datatype,m=[];if(u.length!==l.length)throw new a(u.length,l.length);for(var h=0;h<u.length;h++){if(u[h]!==l[h])throw new RangeError(\"Dimension mismatch. Matrix A (\"+u+\") must match Matrix B (\"+l+\")\");m[h]=u[h]}var g,v=r;\"string\"==typeof c&&c===p&&(g=c,t=n.convert(t,g),v=n.find(r,[g,g]));var d=m.length>0?s(v,0,m,m[0],o,f):[];return new i({data:d,size:m,datatype:g})},s=function(e,t,r,n,i,a){var o=[];if(t===r.length-1)for(var u=0;n>u;u++)o[u]=e(i[u],a[u]);else for(var c=0;n>c;c++)o[c]=s(e,t+1,r,r[t+1],i[c],a[c]);return o};return o}var i=r(39),a=r(42),o=i.string;o.isString;t.name=\"algorithm13\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=e.DenseMatrix,o=function(e,t,r,o){var u,c=e._data,f=e._size,l=e._datatype,p=r;\"string\"==typeof l&&(u=l,t=n.convert(t,u),p=n.find(r,[u,u]));var m=f.length>0?s(p,0,f,f[0],c,t,o):[];return new a({data:m,size:i(f),datatype:u})},s=function(e,t,r,n,i,a,o){var u=[];if(t===r.length-1)for(var c=0;n>c;c++)u[c]=o?e(a,i[c]):e(i[c],a);else for(var f=0;n>f;f++)u[f]=s(e,t+1,r,r[t+1],i[f],a,o);return u};return o}var i=r(3).clone;t.name=\"algorithm14\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){function a(){if(!(this instanceof a))throw new SyntaxError(\"Constructor must be called with the new operator\");this._minimum=null,this._size=0}var o=n(r(59)),s=n(r(63)),u=1/Math.log((1+Math.sqrt(5))/2);a.prototype.type=\"FibonacciHeap\",a.prototype.isFibonacciHeap=!0,a.prototype.insert=function(e,t){var r={key:e,value:t,degree:0};if(this._minimum){var n=this._minimum;r.left=n,r.right=n.right,n.right=r,r.right.left=r,o(e,n.key)&&(this._minimum=r)}else r.left=r,r.right=r,this._minimum=r;return this._size++,r},a.prototype.size=function(){return this._size},a.prototype.clear=function(){this._minimum=null,this._size=0},a.prototype.isEmpty=function(){return!!this._minimum},a.prototype.extractMinimum=function(){var e=this._minimum;if(null===e)return e;for(var t=this._minimum,r=e.degree,n=e.child;r>0;){var i=n.right;n.left.right=n.right,n.right.left=n.left,n.left=t,n.right=t.right,t.right=n,n.right.left=n,n.parent=null,n=i,r--}return e.left.right=e.right,e.right.left=e.left,e==e.right?t=null:(t=e.right,t=m(t,this._size)),this._size--,this._minimum=t,e},a.prototype.remove=function(e){this._minimum=c(this._minimum,e,-1),this.extractMinimum()};var c=function(e,t,r){t.key=r;var n=t.parent;return n&&o(t.key,n.key)&&(f(e,t,n),l(e,n)),o(t.key,e.key)&&(e=t),e},f=function(e,t,r){t.left.right=t.right,t.right.left=t.left,r.degree--,r.child==t&&(r.child=t.right),0===r.degree&&(r.child=null),t.left=e,t.right=e.right,e.right=t,t.right.left=t,t.parent=null,t.mark=!1},l=function(e,t){var r=t.parent;r&&(t.mark?(f(e,t,r),l(r)):t.mark=!0)},p=function(e,t){e.left.right=e.right,e.right.left=e.left,e.parent=t,t.child?(e.left=t.child,e.right=t.child.right,t.child.right=e,e.right.left=e):(t.child=e,e.right=e,e.left=e),t.degree++,e.mark=!1},m=function(e,t){var r=Math.floor(Math.log(t)*u)+1,n=new Array(r),i=0,a=e;if(a)for(i++,a=a.right;a!==e;)i++,a=a.right;for(var c;i>0;){for(var f=a.degree,l=a.right;;){if(c=n[f],!c)break;if(s(a.key,c.key)){var m=c;c=a,a=m}p(c,a),n[f]=null,f++}n[f]=a,a=l,i--}e=null;for(var h=0;r>h;h++)c=n[h],c&&(e?(c.left.right=c.right,c.right.left=c.left,c.left=e,c.right=e.right,e.right=c,c.right.left=c,o(c.key,e.key)&&(e=c)):e=c);return e};return a}t.name=\"FibonacciHeap\",t.path=\"type\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(51)),s=n(r(60)),u=n(r(61)),c=n(r(62)),f=n(r(56)),l=n(r(57)),p=r(30),m=a(\"smaller\",{\"boolean, boolean\":function(e,t){return t>e},\"number, number\":function(e,r){return r>e&&!i(e,r,t.epsilon)},\"BigNumber, BigNumber\":function(e,t){return e.lt(t)},\"Fraction, Fraction\":function(e,t){return-1===e.compare(t)},\"Complex, Complex\":function(e,t){throw new TypeError(\"No ordering relation is defined for complex numbers\")},\"Unit, Unit\":function(e,r){if(!e.equalBase(r))throw new Error(\"Cannot compare units with different base\");return e.value<r.value&&!i(e.value,r.value,t.epsilon)},\"string, string\":function(e,t){return t>e},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=u(e,t,m);break;default:r=s(t,e,m,!0)}break;default:switch(t.storage()){case\"sparse\":r=s(e,t,m,!1);break;default:r=f(e,t,m)}}return r},\"Array, Array\":function(e,t){return m(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return m(o(e),t)},\"Matrix, Array\":function(e,t){return m(e,o(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=c(e,t,m,!1);break;default:r=l(e,t,m,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=c(t,e,m,!0);break;default:r=l(t,e,m,!0)}return r},\"Array, any\":function(e,t){return l(o(e),t,m,!1).valueOf()},\"any, Array\":function(e,t){return l(o(t),e,m,!0).valueOf()}});return m.toTex=\"\\\\left(${args[0]}\"+p.operators.smaller+\"${args[1]}\\\\right)\",m}var i=r(6).nearlyEqual;t.name=\"smaller\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=e.DenseMatrix,o=function(e,t,r,o){var s=e._data,u=e._size,c=e._datatype,f=t._values,l=t._index,p=t._ptr,m=t._size,h=t._datatype;if(u.length!==m.length)throw new i(u.length,m.length);if(u[0]!==m[0]||u[1]!==m[1])throw new RangeError(\"Dimension mismatch. Matrix A (\"+u+\") must match Matrix B (\"+m+\")\");if(!f)throw new Error(\"Cannot perform operation on Dense Matrix and Pattern Sparse Matrix\");var g,v=u[0],d=u[1],y=0,x=r;\"string\"==typeof c&&c===h&&(g=c,y=n.convert(0,g),x=n.find(r,[g,g]));for(var w=[],b=0;v>b;b++)w[b]=[];for(var N=[],E=[],M=0;d>M;M++){for(var A=M+1,_=p[M],O=p[M+1],T=_;O>T;T++){var C=l[T];N[C]=o?x(f[T],s[C][M]):x(s[C][M],f[T]),E[C]=A}for(var S=0;v>S;S++)E[S]===A?w[S][M]=N[S]:w[S][M]=o?x(y,s[S][M]):x(s[S][M],y)}return new a({data:w,size:[v,d],datatype:g})};return o}var i=r(42);t.name=\"algorithm03\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=e.DenseMatrix,o=function(e,t,r){var o=e._size,u=e._datatype,c=t._size,f=t._datatype;if(o.length!==c.length)throw new i(o.length,c.length);if(o[0]!==c[0]||o[1]!==c[1])throw new RangeError(\"Dimension mismatch. Matrix A (\"+o+\") must match Matrix B (\"+c+\")\");var l,p=o[0],m=o[1],h=0,g=r;\"string\"==typeof u&&u===f&&(l=u,h=n.convert(0,l),g=n.find(r,[l,l]));var v,d,y=[];for(v=0;p>v;v++)y[v]=[];var x=new a({data:y,size:[p,m],datatype:l}),w=[],b=[],N=[],E=[];for(d=0;m>d;d++){var M=d+1;for(s(e,d,N,w,M),s(t,d,E,b,M),v=0;p>v;v++){var A=N[v]===M?w[v]:h,_=E[v]===M?b[v]:h;y[v][d]=g(A,_)}}return x},s=function(e,t,r,n,i){for(var a=e._values,o=e._index,s=e._ptr,u=s[t],c=s[t+1];c>u;u++){var f=o[u];r[f]=i,n[f]=a[u]}};return o}var i=r(42);t.name=\"algorithm07\",t.factory=n},function(e,t){\"use strict\";function r(e,t,r,n){var i=e.DenseMatrix,a=function(e,t,r,a){var o=e._values,s=e._index,u=e._ptr,c=e._size,f=e._datatype;if(!o)throw new Error(\"Cannot perform operation on Pattern Sparse Matrix and Scalar value\");var l,p=c[0],m=c[1],h=r;\"string\"==typeof f&&(l=f,t=n.convert(t,l),h=n.find(r,[l,l]));for(var g=[],v=new i({data:g,size:[p,m],datatype:l}),d=[],y=[],x=0;m>x;x++){for(var w=x+1,b=u[x],N=u[x+1],E=b;N>E;E++){var M=s[E];d[M]=o[E],y[M]=w}for(var A=0;p>A;A++)0===x&&(g[A]=[]),y[A]===w?g[A][x]=a?h(t,d[A]):h(d[A],t):g[A][x]=a?h(t,0):h(0,t)}return v};return a}t.name=\"algorithm12\",t.factory=r},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(51)),s=n(r(60)),u=n(r(61)),c=n(r(62)),f=n(r(56)),l=n(r(57)),p=r(30),m=a(\"larger\",{\"boolean, boolean\":function(e,t){return e>t},\"number, number\":function(e,r){return e>r&&!i(e,r,t.epsilon)},\"BigNumber, BigNumber\":function(e,t){return e.gt(t)},\"Fraction, Fraction\":function(e,t){return 1===e.compare(t)},\"Complex, Complex\":function(){throw new TypeError(\"No ordering relation is defined for complex numbers\")},\"Unit, Unit\":function(e,r){if(!e.equalBase(r))throw new Error(\"Cannot compare units with different base\");return e.value>r.value&&!i(e.value,r.value,t.epsilon)},\"string, string\":function(e,t){return e>t},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=u(e,t,m);break;default:r=s(t,e,m,!0)}break;default:switch(t.storage()){case\"sparse\":r=s(e,t,m,!1);break;default:r=f(e,t,m)}}return r},\"Array, Array\":function(e,t){return m(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return m(o(e),t)},\"Matrix, Array\":function(e,t){return m(e,o(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=c(e,t,m,!1);break;default:r=l(e,t,m,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=c(t,e,m,!0);break;default:r=l(t,e,m,!0)}return r},\"Array, any\":function(e,t){return l(o(e),t,m,!1).valueOf()},\"any, Array\":function(e,t){return l(o(t),e,m,!0).valueOf()}});return m.toTex=\"\\\\left(${args[0]}\"+p.operators.larger+\"${args[1]}\\\\right)\",m}var i=r(6).nearlyEqual;t.name=\"larger\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n){function a(e,t){if(!(this instanceof a))throw new SyntaxError(\"Constructor must be called with the new operator\");if(t&&!u(t))throw new Error(\"Invalid datatype: \"+t);if(e&&e.isMatrix===!0||s(e)){var r=new c(e,t);this._data=r._data,this._size=r._size,this._datatype=r._datatype,this._min=null,this._max=null}else if(e&&s(e.data)&&s(e.size))this._data=e.data,this._size=e.size,this._datatype=e.datatype,this._min=\"undefined\"!=typeof e.min?e.min:null,this._max=\"undefined\"!=typeof e.max?e.max:null;else{if(e)throw new TypeError(\"Unsupported type of data (\"+i.types.type(e)+\")\");this._data=[],this._size=[0],this._datatype=t,this._min=null,this._max=null}}var c=n(r(46)),f=n(r(59));return a.prototype=new c,a.prototype.type=\"ImmutableDenseMatrix\",a.prototype.isImmutableDenseMatrix=!0,a.prototype.subset=function(e){switch(arguments.length){case 1:var t=c.prototype.subset.call(this,e);return t.isMatrix?new a({data:t._data,size:t._size,datatype:t._datatype}):t;case 2:case 3:throw new Error(\"Cannot invoke set subset on an Immutable Matrix instance\");default:throw new SyntaxError(\"Wrong number of arguments\")}},a.prototype.set=function(){throw new Error(\"Cannot invoke set on an Immutable Matrix instance\")},a.prototype.resize=function(){throw new Error(\"Cannot invoke resize on an Immutable Matrix instance\")},a.prototype.clone=function(){var e=new a({data:o.clone(this._data),size:o.clone(this._size),datatype:this._datatype});return e},a.prototype.toJSON=function(){return{mathjs:\"ImmutableDenseMatrix\",data:this._data,size:this._size,datatype:this._datatype}},a.fromJSON=function(e){return new a(e)},a.prototype.swapRows=function(){throw new Error(\"Cannot invoke swapRows on an Immutable Matrix instance\")},a.prototype.min=function(){if(null===this._min){var e=null;this.forEach(function(t){(null===e||f(t,e))&&(e=t)}),this._min=null!==e?e:void 0}return this._min},a.prototype.max=function(){if(null===this._max){var e=null;this.forEach(function(t){(null===e||f(e,t))&&(e=t)}),this._max=null!==e?e:void 0}return this._max},a}var i=r(39),a=i.string,o=i.object,s=Array.isArray,u=a.isString;t.name=\"ImmutableDenseMatrix\",t.path=\"type\",t.factory=n},function(e,t,r){\"use strict\";function n(e){function t(e){if(!(this instanceof t))throw new SyntaxError(\"Constructor must be called with the new operator\");this._dimensions=[],this._isScalar=!0;for(var n=0,i=arguments.length;i>n;n++){var a=arguments[n];if(a&&a.isRange===!0)this._dimensions.push(a),this._isScalar=!1;else if(a&&(Array.isArray(a)||a.isMatrix===!0)){var o=r(a.valueOf());this._dimensions.push(o);var s=o.size();this._isScalar=1===s.length&&1===s[0]}else{if(\"number\"!=typeof a)throw new TypeError(\"Dimension must be an Array, Matrix, Number or Range\");this._dimensions.push(r([a]))}}}function r(t){for(var r=0,n=t.length;n>r;r++)if(\"number\"!=typeof t[r]||!a(t[r]))throw new TypeError(\"Index parameters must be positive integer numbers\");return new e.ImmutableDenseMatrix(t)}return t.prototype.type=\"Index\",t.prototype.isIndex=!0,t.prototype.clone=function(){var e=new t;return e._dimensions=i(this._dimensions),e._isScalar=this._isScalar,e},t.create=function(e){var r=new t;return t.apply(r,e),r},t.prototype.size=function(){for(var e=[],t=0,r=this._dimensions.length;r>t;t++){var n=this._dimensions[t];e[t]=n.size()[0]}return e},t.prototype.max=function(){for(var e=[],t=0,r=this._dimensions.length;r>t;t++){var n=this._dimensions[t];e[t]=n.max()}return e},t.prototype.min=function(){for(var e=[],t=0,r=this._dimensions.length;r>t;t++){var n=this._dimensions[t];e[t]=n.min()}return e},t.prototype.forEach=function(e){for(var t=0,r=this._dimensions.length;r>t;t++)e(this._dimensions[t],t,this)},t.prototype.dimension=function(e){return this._dimensions[e]||null},t.prototype.isScalar=function(){return this._isScalar},t.prototype.toArray=function(){for(var e=[],t=0,r=this._dimensions.length;r>t;t++)e.push(this._dimensions[t].toArray());return e},t.prototype.valueOf=t.prototype.toArray,t.prototype.toString=function(){for(var e=[],t=0,r=this._dimensions.length;r>t;t++)e.push(this._dimensions[t].toString());return\"[\"+e.join(\", \")+\"]\"},t.prototype.toJSON=function(){return{mathjs:\"Index\",dimensions:this._dimensions}},t.fromJSON=function(e){return t.create(e.dimensions)},t}var i=r(3).clone,a=r(6).isInteger;t.name=\"Index\",t.path=\"type\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){function a(e,t,r){if(!(this instanceof a))throw new SyntaxError(\"Constructor must be called with the new operator\");if(null!=e)if(e.isBigNumber===!0)e=e.toNumber();else if(\"number\"!=typeof e)throw new TypeError(\"Parameter start must be a number\");if(null!=t)if(t.isBigNumber===!0)t=t.toNumber();else if(\"number\"!=typeof t)throw new TypeError(\"Parameter end must be a number\");if(null!=r)if(r.isBigNumber===!0)r=r.toNumber();else if(\"number\"!=typeof r)throw new TypeError(\"Parameter step must be a number\");this.start=null!=e?parseFloat(e):0,this.end=null!=t?parseFloat(t):0,this.step=null!=r?parseFloat(r):1}return a.prototype.type=\"Range\",a.prototype.isRange=!0,a.parse=function(e){if(\"string\"!=typeof e)return null;var t=e.split(\":\"),r=t.map(function(e){return parseFloat(e)}),n=r.some(function(e){return isNaN(e)});if(n)return null;switch(r.length){case 2:return new a(r[0],r[1]);case 3:return new a(r[0],r[2],r[1]);default:return null}},a.prototype.clone=function(){return new a(this.start,this.end,this.step)},a.prototype.size=function(){var e=0,t=this.start,r=this.step,n=this.end,a=n-t;return i.sign(r)==i.sign(a)?e=Math.ceil(a/r):0==a&&(e=0),isNaN(e)&&(e=0),[e]},a.prototype.min=function(){var e=this.size()[0];return e>0?this.step>0?this.start:this.start+(e-1)*this.step:void 0},a.prototype.max=function(){var e=this.size()[0];return e>0?this.step>0?this.start+(e-1)*this.step:this.start:void 0},a.prototype.forEach=function(e){var t=this.start,r=this.step,n=this.end,i=0;if(r>0)for(;n>t;)e(t,[i],this),t+=r,i++;else if(0>r)for(;t>n;)e(t,[i],this),t+=r,i++},a.prototype.map=function(e){var t=[];return this.forEach(function(r,n,i){t[n[0]]=e(r,n,i)}),t},a.prototype.toArray=function(){var e=[];return this.forEach(function(t,r){e[r[0]]=t}),e},a.prototype.valueOf=function(){return this.toArray()},a.prototype.format=function(e){var t=i.format(this.start,e);return 1!=this.step&&(t+=\":\"+i.format(this.step,e)),t+=\":\"+i.format(this.end,e)},a.prototype.toString=function(){return this.format()},a.prototype.toJSON=function(){return{mathjs:\"Range\",start:this.start,end:this.end,step:this.step}},a.fromJSON=function(e){return new a(e.start,e.end,e.step)},a}var i=r(6);t.name=\"Range\",t.path=\"type\",t.factory=n},function(e,t){\"use strict\";function r(e,t,r,n){return n(\"index\",{\"...number | BigNumber | Range | Array | Matrix\":function(t){var r=t.map(function(e){return e&&e.isBigNumber===!0?e.toNumber():e&&(Array.isArray(e)||e.isMatrix===!0)?e.map(function(e){return e&&e.isBigNumber===!0?e.toNumber():e}):e}),n=new e.Index;return e.Index.apply(n,r),n}})}t.name=\"index\",t.factory=r},function(e,t){\"use strict\";function r(e,t,r,n){var i=e.SparseMatrix,a=n(\"sparse\",{\"\":function(){return new i([])},string:function(e){return new i([],e)},\"Array | Matrix\":function(e){return new i(e)},\"Array | Matrix, string\":function(e,t){return new i(e,t)}});return a.toTex={0:\"\\\\begin{bsparse}\\\\end{bsparse}\",1:\"\\\\left(${args[0]}\\\\right)\"},a}t.name=\"sparse\",t.factory=r},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"number\",{\"\":function(){return 0},number:function(e){return e},string:function(e){var t=Number(e);if(isNaN(t))throw new SyntaxError('String \"'+e+'\" is no valid number');return t},BigNumber:function(e){return e.toNumber()},Unit:function(e){throw new Error(\"Second argument with valueless unit expected\")},\"Unit, string | Unit\":function(e,t){return e.toNumber(t)},\"Array | Matrix\":function(e){return i(e,a)}});return a.toTex={0:\"0\",1:\"\\\\left(${args[0]}\\\\right)\",2:\"\\\\left(\\\\left(${args[0]}\\\\right)${args[1]}\\\\right)\"},a}var i=r(19);t.name=\"number\",t.factory=n},function(e,t,r){e.exports=[r(71)]},function(e,t){\"use strict\";function r(e,t,r,n){function i(e){if(!(this instanceof i))throw new SyntaxError(\"Constructor must be called with the new operator\");this.entries=e||[]}return i.prototype.type=\"ResultSet\",i.prototype.isResultSet=!0,i.prototype.valueOf=function(){return this.entries},i.prototype.toString=function(){return\"[\"+this.entries.join(\", \")+\"]\"},i.prototype.toJSON=function(){return{mathjs:\"ResultSet\",entries:this.entries}},i.fromJSON=function(e){return new i(e.entries)},i}t.name=\"ResultSet\",t.path=\"type\",t.factory=r},function(e,t,r){\"use strict\";function n(e,t,r,n){var o=n(\"string\",{\"\":function(){return\"\"},number:a.format,\"null\":function(e){return\"null\"},\"boolean\":function(e){return e+\"\"},string:function(e){return e},\"Array | Matrix\":function(e){return i(e,o)},any:function(e){return String(e)}});return o.toTex={0:'\\\\mathtt{\"\"}',1:\"\\\\mathrm{string}\\\\left(${args[0]}\\\\right)\"},o}var i=r(19),a=r(6);t.name=\"string\",t.factory=n},function(e,t,r){e.exports=[r(28),r(74),r(75)]},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"unit\",{Unit:function(e){return e.clone()},string:function(t){return e.Unit.isValuelessUnit(t)?new e.Unit(null,t):e.Unit.parse(t)},\"number, string\":function(t,r){return new e.Unit(t,r)},\"BigNumber, string\":function(t,r){return new e.Unit(t.toNumber(),r)},\"Array | Matrix\":function(e){return i(e,a)}});return a.toTex={1:\"\\\\left(${args[0]}\\\\right)\",2:\"\\\\left(\\\\left(${args[0]}\\\\right)${args[1]}\\\\right)\"},a}var i=r(19);t.name=\"unit\",t.factory=n},function(e,t,r){function n(e,t,r,n,a){function o(t){var r=e.Unit.parse(t);return r.fixPrefix=!0,r}i(a,\"speedOfLight\",function(){return o(\"299792458 m s^-1\")}),i(a,\"gravitationConstant\",function(){return o(\"6.6738480e-11 m^3 kg^-1 s^-2\")}),i(a,\"planckConstant\",function(){return o(\"6.626069311e-34 J s\")}),i(a,\"reducedPlanckConstant\",function(){return o(\"1.05457172647e-34 J s\")}),i(a,\"magneticConstant\",function(){return o(\"1.2566370614e-6 N A^-2\")}),i(a,\"electricConstant\",function(){return o(\"8.854187817e-12 F m^-1\")}),i(a,\"vacuumImpedance\",function(){return o(\"376.730313461 ohm\")}),i(a,\"coulomb\",function(){return o(\"8.9875517873681764e9 N m^2 C^-2\")}),i(a,\"elementaryCharge\",function(){return o(\"1.60217656535e-19 C\")}),i(a,\"bohrMagneton\",function(){return o(\"9.2740096820e-24 J T^-1\")}),i(a,\"conductanceQuantum\",function(){return o(\"7.748091734625e-5 S\")}),i(a,\"inverseConductanceQuantum\",function(){return o(\"12906.403721742 ohm\")}),i(a,\"magneticFluxQuantum\",function(){return o(\"2.06783375846e-15 Wb\")}),i(a,\"nuclearMagneton\",function(){return o(\"5.0507835311e-27 J T^-1\")}),i(a,\"klitzing\",function(){return o(\"25812.807443484 ohm\")}),i(a,\"bohrRadius\",function(){return o(\"5.291772109217e-11 m\")}),i(a,\"classicalElectronRadius\",function(){return o(\"2.817940326727e-15 m\")}),i(a,\"electronMass\",function(){return o(\"9.1093829140e-31 kg\")}),i(a,\"fermiCoupling\",function(){return o(\"1.1663645e-5 GeV^-2\")}),i(a,\"fineStructure\",function(){return.007297352569824}),i(a,\"hartreeEnergy\",function(){return o(\"4.3597443419e-18 J\")}),i(a,\"protonMass\",function(){return o(\"1.67262177774e-27 kg\")}),i(a,\"deuteronMass\",function(){return o(\"3.3435830926e-27 kg\")}),i(a,\"neutronMass\",function(){return o(\"1.6749271613e-27 kg\")}),i(a,\"quantumOfCirculation\",function(){return o(\"3.636947552024e-4 m^2 s^-1\")}),i(a,\"rydberg\",function(){return o(\"10973731.56853955 m^-1\")}),i(a,\"thomsonCrossSection\",function(){return o(\"6.65245873413e-29 m^2\")}),i(a,\"weakMixingAngle\",function(){return.222321}),i(a,\"efimovFactor\",function(){return 22.7}),i(a,\"atomicMass\",function(){return o(\"1.66053892173e-27 kg\")}),i(a,\"avogadro\",function(){return o(\"6.0221412927e23 mol^-1\")}),i(a,\"boltzmann\",function(){return o(\"1.380648813e-23 J K^-1\")}),i(a,\"faraday\",function(){return o(\"96485.336521 C mol^-1\")}),i(a,\"firstRadiation\",function(){return o(\"3.7417715317e-16 W m^2\")}),i(a,\"loschmidt\",function(){return o(\"2.686780524e25 m^-3\")}),i(a,\"gasConstant\",function(){return o(\"8.314462175 J K^-1 mol^-1\")}),i(a,\"molarPlanckConstant\",function(){return o(\"3.990312717628e-10 J s mol^-1\")}),i(a,\"molarVolume\",function(){return o(\"2.241396820e-10 m^3 mol^-1\")}),i(a,\"sackurTetrode\",function(){return-1.164870823}),i(a,\"secondRadiation\",function(){return o(\"1.438777013e-2 m K\")}),i(a,\"stefanBoltzmann\",function(){return o(\"5.67037321e-8 W m^-2 K^-4\")}),i(a,\"wienDisplacement\",function(){return o(\"2.897772126e-3 m K\")}),i(a,\"molarMass\",function(){return o(\"1e-3 kg mol^-1\")}),i(a,\"molarMassC12\",function(){return o(\"1.2e-2 kg mol^-1\")}),i(a,\"gravity\",function(){return o(\"9.80665 m s^-2\")}),i(a,\"planckLength\",function(){return o(\"1.61619997e-35 m\")}),i(a,\"planckMass\",function(){return o(\"2.1765113e-8 kg\")}),i(a,\"planckTime\",function(){return o(\"5.3910632e-44 s\")}),i(a,\"planckCharge\",function(){return o(\"1.87554595641e-18 C\")}),i(a,\"planckTemperature\",function(){return o(\"1.41683385e+32 K\")})}var i=r(3).lazy;t.factory=n,t.lazy=!1,t.math=!0},function(e,t,r){\"use strict\";function n(e,t,o,s,u){u.on(\"config\",function(r,i){r.number!==i.number&&n(e,t,o,s,u)}),u[\"true\"]=!0,u[\"false\"]=!1,u[\"null\"]=null,u.uninitialized=r(40).UNINITIALIZED,\"bignumber\"===t.number?(u.Infinity=new e.BigNumber(1/0),u.NaN=new e.BigNumber(NaN),i.lazy(u,\"pi\",function(){return a.pi(e.BigNumber)}),i.lazy(u,\"tau\",function(){return a.tau(e.BigNumber)}),i.lazy(u,\"e\",function(){return a.e(e.BigNumber)}),i.lazy(u,\"phi\",function(){return a.phi(e.BigNumber)}),i.lazy(u,\"E\",function(){return u.e}),i.lazy(u,\"LN2\",function(){return new e.BigNumber(2).ln()}),i.lazy(u,\"LN10\",function(){return new e.BigNumber(10).ln()}),i.lazy(u,\"LOG2E\",function(){return new e.BigNumber(1).div(new e.BigNumber(2).ln())}),i.lazy(u,\"LOG10E\",function(){return new e.BigNumber(1).div(new e.BigNumber(10).ln())}),i.lazy(u,\"PI\",function(){return u.pi}),i.lazy(u,\"SQRT1_2\",function(){return new e.BigNumber(\"0.5\").sqrt()}),i.lazy(u,\"SQRT2\",function(){return new e.BigNumber(2).sqrt()})):(u.Infinity=1/0,u.NaN=NaN,u.pi=Math.PI,u.tau=2*Math.PI,u.e=Math.E,u.phi=1.618033988749895,u.E=u.e,u.LN2=Math.LN2,u.LN10=Math.LN10,u.LOG2E=Math.LOG2E,u.LOG10E=Math.LOG10E,u.PI=u.pi,u.SQRT1_2=Math.SQRT1_2,u.SQRT2=Math.SQRT2),u.i=new e.Complex(0,1),u.version=r(79)}var i=r(3),a=r(77);t.factory=n,t.lazy=!1,t.math=!0},function(e,t,r){function n(e){return e[0].precision}var i=r(45).memoize,a=r(78);t.e=i(function(e){return new e(1).exp()},n),t.phi=i(function(e){return new e(1).plus(new e(5).sqrt()).div(2)},n),t.pi=i(function(e){var t=e.constructor({precision:e.precision+4}),r=new t(4).times(a(new t(1).div(5))).minus(a(new t(1).div(239)));return new e(4).times(r)},n),t.tau=i(function(e){var r=t.pi(e.constructor({precision:e.precision+2}));return new e(2).times(r)},n)},function(e,t){e.exports=function(e){for(var t=e,r=NaN,n=e.times(e),i=e,a=!0,o=3;!t.equals(r);o+=2)i=i.times(n),r=t,a=!a,t=a?t.plus(i.div(o)):t.minus(i.div(o));return t}},function(e,t){e.exports=\"2.4.1\"},function(e,t,r){e.exports=[r(81),r(251),r(275),r(276),r(311),r(253),r(274)]},function(e,t,r){function n(e,t,n,i){var a={};return a.bignumber=r(82),a[\"boolean\"]=r(83),a.complex=r(84),a.fraction=r(85),a.index=r(86),a.matrix=r(87),a.number=r(88),a.sparse=r(89),a.string=r(90),a.unit=r(91),a.e=r(92),a.E=r(92),a[\"false\"]=r(93),a.i=r(94),a.Infinity=r(95),a.LN2=r(96),a.LN10=r(97),a.LOG2E=r(98),a.LOG10E=r(99),a.NaN=r(100),a[\"null\"]=r(101),a.pi=r(102),a.PI=r(102),a.phi=r(103),a.SQRT1_2=r(104),a.SQRT2=r(105),a.tau=r(106),a[\"true\"]=r(107),a.version=r(108),a.speedOfLight={description:\"Speed of light in vacuum\",examples:[\"speedOfLight\"]},a.gravitationConstant={description:\"Newtonian constant of gravitation\",examples:[\"gravitationConstant\"]},a.planckConstant={description:\"Planck constant\",examples:[\"planckConstant\"]},a.reducedPlanckConstant={description:\"Reduced Planck constant\",examples:[\"reducedPlanckConstant\"]},a.magneticConstant={description:\"Magnetic constant (vacuum permeability)\",examples:[\"magneticConstant\"]},a.electricConstant={description:\"Electric constant (vacuum permeability)\",examples:[\"electricConstant\"]},a.vacuumImpedance={description:\"Characteristic impedance of vacuum\",examples:[\"vacuumImpedance\"]},a.coulomb={description:\"Coulomb's constant\",examples:[\"coulomb\"]},a.elementaryCharge={description:\"Elementary charge\",examples:[\"elementaryCharge\"]},a.bohrMagneton={description:\"Borh magneton\",examples:[\"bohrMagneton\"]},a.conductanceQuantum={description:\"Conductance quantum\",examples:[\"conductanceQuantum\"]},a.inverseConductanceQuantum={description:\"Inverse conductance quantum\",examples:[\"inverseConductanceQuantum\"]},a.magneticFluxQuantum={description:\"Magnetic flux quantum\",examples:[\"magneticFluxQuantum\"]},a.nuclearMagneton={description:\"Nuclear magneton\",examples:[\"nuclearMagneton\"]},a.klitzing={description:\"Von Klitzing constant\",examples:[\"klitzing\"]},a.bohrRadius={description:\"Borh radius\",examples:[\"bohrRadius\"]},a.classicalElectronRadius={description:\"Classical electron radius\",examples:[\"classicalElectronRadius\"]},a.electronMass={description:\"Electron mass\",examples:[\"electronMass\"]},a.fermiCoupling={description:\"Fermi coupling constant\",examples:[\"fermiCoupling\"]},a.fineStructure={description:\"Fine-structure constant\",examples:[\"fineStructure\"]},a.hartreeEnergy={description:\"Hartree energy\",examples:[\"hartreeEnergy\"]},a.protonMass={description:\"Proton mass\",examples:[\"protonMass\"]},a.deuteronMass={description:\"Deuteron Mass\",examples:[\"deuteronMass\"]},a.neutronMass={description:\"Neutron mass\",examples:[\"neutronMass\"]},a.quantumOfCirculation={description:\"Quantum of circulation\",examples:[\"quantumOfCirculation\"]},a.rydberg={description:\"Rydberg constant\",examples:[\"rydberg\"]},a.thomsonCrossSection={description:\"Thomson cross section\",examples:[\"thomsonCrossSection\"]},a.weakMixingAngle={description:\"Weak mixing angle\",examples:[\"weakMixingAngle\"]},a.efimovFactor={description:\"Efimov factor\",examples:[\"efimovFactor\"]},a.atomicMass={description:\"Atomic mass constant\",examples:[\"atomicMass\"]},a.avogadro={description:\"Avogadro's number\",examples:[\"avogadro\"]},a.boltzmann={description:\"Boltzmann constant\",examples:[\"boltzmann\"]},a.faraday={description:\"Faraday constant\",examples:[\"faraday\"]},a.firstRadiation={description:\"First radiation constant\",examples:[\"firstRadiation\"]},a.loschmidt={description:\"Loschmidt constant at T=273.15 K and p=101.325 kPa\",examples:[\"loschmidt\"]},a.gasConstant={description:\"Gas constant\",examples:[\"gasConstant\"]},a.molarPlanckConstant={description:\"Molar Planck constant\",examples:[\"molarPlanckConstant\"]},a.molarVolume={description:\"Molar volume of an ideal gas at T=273.15 K and p=101.325 kPa\",examples:[\"molarVolume\"]},a.sackurTetrode={description:\"Sackur-Tetrode constant at T=1 K and p=101.325 kPa\",examples:[\"sackurTetrode\"]},a.secondRadiation={description:\"Second radiation constant\",examples:[\"secondRadiation\"]},a.stefanBoltzmann={description:\"Stefan-Boltzmann constant\",examples:[\"stefanBoltzmann\"]},a.wienDisplacement={description:\"Wien displacement law constant\",examples:[\"wienDisplacement\"]},a.molarMass={description:\"Molar mass constant\",examples:[\"molarMass\"]},a.molarMassC12={description:\"Molar mass constant of carbon-12\",examples:[\"molarMassC12\"]},a.gravity={description:\"Standard acceleration of gravity (standard acceleration of free-fall on Earth)\",examples:[\"gravity\"]},a.planckLength={description:\"Planck length\",examples:[\"planckLength\"]},a.planckMass={description:\"Planck mass\",examples:[\"planckMass\"]},a.planckTime={description:\"Planck time\",examples:[\"planckTime\"]},a.planckCharge={description:\"Planck charge\",examples:[\"planckCharge\"]},a.planckTemperature={description:\"Planck temperature\",examples:[\"planckTemperature\"]},a.lsolve=r(109),a.lup=r(110),a.lusolve=r(111),a.slu=r(112),a.usolve=r(113),a.abs=r(114),a.add=r(115),a.cbrt=r(116),a.ceil=r(117),a.cube=r(118),a.divide=r(119),a.dotDivide=r(120),a.dotMultiply=r(121),a.dotPow=r(122),a.exp=r(123),a.fix=r(124),a.floor=r(125),a.gcd=r(126),a.hypot=r(127),a.lcm=r(128),a.log=r(129),a.log10=r(130),a.mod=r(131),a.multiply=r(132),a.norm=r(133),a.nthRoot=r(134),a.pow=r(135),a.round=r(136),a.sign=r(137),a.sqrt=r(138),\na.square=r(139),a.subtract=r(140),a.unaryMinus=r(141),a.unaryPlus=r(142),a.xgcd=r(143),a.bitAnd=r(144),a.bitNot=r(145),a.bitOr=r(146),a.bitXor=r(147),a.leftShift=r(148),a.rightArithShift=r(149),a.rightLogShift=r(150),a.bellNumbers=r(151),a.catalan=r(152),a.composition=r(153),a.stirlingS2=r(154),a.arg=r(155),a.conj=r(156),a.re=r(157),a.im=r(158),a.eval=r(159),a.help=r(160),a.distance=r(161),a.intersect=r(162),a.and=r(163),a.not=r(164),a.or=r(165),a.xor=r(166),a.concat=r(167),a.cross=r(168),a.det=r(169),a.diag=r(170),a.dot=r(171),a.eye=r(172),a.flatten=r(173),a.inv=r(174),a.ones=r(175),a.range=r(176),a.resize=r(177),a.size=r(178),a.squeeze=r(179),a.subset=r(180),a.trace=r(181),a.transpose=r(182),a.zeros=r(183),a.combinations=r(184),a.factorial=r(185),a.gamma=r(186),a.kldivergence=r(187),a.multinomial=r(188),a.permutations=r(189),a.pickRandom=r(190),a.random=r(191),a.randomInt=r(192),a.compare=r(193),a.deepEqual=r(194),a.equal=r(195),a.larger=r(196),a.largerEq=r(197),a.smaller=r(198),a.smallerEq=r(199),a.unequal=r(200),a.max=r(201),a.mean=r(202),a.median=r(203),a.min=r(204),a.mode=r(205),a.prod=r(206),a.quantileSeq=r(207),a.std=r(208),a.sum=r(209),a[\"var\"]=r(210),a.acos=r(211),a.acosh=r(212),a.acot=r(213),a.acoth=r(214),a.acsc=r(215),a.acsch=r(216),a.asec=r(217),a.asech=r(218),a.asin=r(219),a.asinh=r(220),a.atan=r(221),a.atanh=r(222),a.atan2=r(223),a.cos=r(224),a.cosh=r(225),a.cot=r(226),a.coth=r(227),a.csc=r(228),a.csch=r(229),a.sec=r(230),a.sech=r(231),a.sin=r(232),a.sinh=r(233),a.tan=r(234),a.tanh=r(235),a.to=r(236),a.clone=r(237),a.map=r(238),a.partitionSelect=r(239),a.filter=r(240),a.forEach=r(241),a.format=r(242),a.isInteger=r(243),a.isNegative=r(244),a.isNumeric=r(245),a.isPositive=r(246),a.isZero=r(247),a[\"import\"]=r(248),a.sort=r(249),a[\"typeof\"]=r(250),a}t.name=\"docs\",t.path=\"expression\",t.factory=n},function(e,t){e.exports={name:\"bignumber\",category:\"Type\",syntax:[\"bignumber(x)\"],description:\"Create a big number from a number or string.\",examples:[\"0.1 + 0.2\",\"bignumber(0.1) + bignumber(0.2)\",'bignumber(\"7.2\")','bignumber(\"7.2e500\")',\"bignumber([0.1, 0.2, 0.3])\"],seealso:[\"boolean\",\"complex\",\"fraction\",\"index\",\"matrix\",\"string\",\"unit\"]}},function(e,t){e.exports={name:\"boolean\",category:\"Type\",syntax:[\"x\",\"boolean(x)\"],description:\"Convert a string or number into a boolean.\",examples:[\"boolean(0)\",\"boolean(1)\",\"boolean(3)\",'boolean(\"true\")','boolean(\"false\")',\"boolean([1, 0, 1, 1])\"],seealso:[\"bignumber\",\"complex\",\"index\",\"matrix\",\"number\",\"string\",\"unit\"]}},function(e,t){e.exports={name:\"complex\",category:\"Type\",syntax:[\"complex()\",\"complex(re, im)\",\"complex(string)\"],description:\"Create a complex number.\",examples:[\"complex()\",\"complex(2, 3)\",'complex(\"7 - 2i\")'],seealso:[\"bignumber\",\"boolean\",\"index\",\"matrix\",\"number\",\"string\",\"unit\"]}},function(e,t){e.exports={name:\"fraction\",category:\"Type\",syntax:[\"fraction(num)\",\"fraction(num,den)\"],description:\"Create a fraction from a number or from a numerator and denominator.\",examples:[\"fraction(0.125)\",\"fraction(1, 3) + fraction(2, 5)\"],seealso:[\"bignumber\",\"boolean\",\"complex\",\"index\",\"matrix\",\"string\",\"unit\"]}},function(e,t){e.exports={name:\"index\",category:\"Type\",syntax:[\"[start]\",\"[start:end]\",\"[start:step:end]\",\"[start1, start 2, ...]\",\"[start1:end1, start2:end2, ...]\",\"[start1:step1:end1, start2:step2:end2, ...]\"],description:\"Create an index to get or replace a subset of a matrix\",examples:[\"[]\",\"[1, 2, 3]\",\"A = [1, 2, 3; 4, 5, 6]\",\"A[1, :]\",\"A[1, 2] = 50\",\"A[0:2, 0:2] = ones(2, 2)\"],seealso:[\"bignumber\",\"boolean\",\"complex\",\"matrix,\",\"number\",\"range\",\"string\",\"unit\"]}},function(e,t){e.exports={name:\"matrix\",category:\"Type\",syntax:[\"[]\",\"[a1, b1, ...; a2, b2, ...]\",\"matrix()\",'matrix(\"dense\")',\"matrix([...])\"],description:\"Create a matrix.\",examples:[\"[]\",\"[1, 2, 3]\",\"[1, 2, 3; 4, 5, 6]\",\"matrix()\",\"matrix([3, 4])\",'matrix([3, 4; 5, 6], \"sparse\")','matrix([3, 4; 5, 6], \"sparse\", \"number\")'],seealso:[\"bignumber\",\"boolean\",\"complex\",\"index\",\"number\",\"string\",\"unit\",\"sparse\"]}},function(e,t){e.exports={name:\"number\",category:\"Type\",syntax:[\"x\",\"number(x)\"],description:\"Create a number or convert a string or boolean into a number.\",examples:[\"2\",\"2e3\",\"4.05\",\"number(2)\",'number(\"7.2\")',\"number(true)\",\"number([true, false, true, true])\",'number(\"52cm\", \"m\")'],seealso:[\"bignumber\",\"boolean\",\"complex\",\"fraction\",\"index\",\"matrix\",\"string\",\"unit\"]}},function(e,t){e.exports={name:\"sparse\",category:\"Type\",syntax:[\"sparse()\",\"sparse([a1, b1, ...; a1, b2, ...])\",'sparse([a1, b1, ...; a1, b2, ...], \"number\")'],description:\"Create a sparse matrix.\",examples:[\"sparse()\",\"sparse([3, 4; 5, 6])\",'sparse([3, 0; 5, 0], \"number\")'],seealso:[\"bignumber\",\"boolean\",\"complex\",\"index\",\"number\",\"string\",\"unit\",\"matrix\"]}},function(e,t){e.exports={name:\"string\",category:\"Type\",syntax:['\"text\"',\"string(x)\"],description:\"Create a string or convert a value to a string\",examples:['\"Hello World!\"',\"string(4.2)\",\"string(3 + 2i)\"],seealso:[\"bignumber\",\"boolean\",\"complex\",\"index\",\"matrix\",\"number\",\"unit\"]}},function(e,t){e.exports={name:\"unit\",category:\"Type\",syntax:[\"value unit\",\"unit(value, unit)\",\"unit(string)\"],description:\"Create a unit.\",examples:[\"5.5 mm\",\"3 inch\",'unit(7.1, \"kilogram\")','unit(\"23 deg\")'],seealso:[\"bignumber\",\"boolean\",\"complex\",\"index\",\"matrix\",\"number\",\"string\"]}},function(e,t){e.exports={name:\"e\",category:\"Constants\",syntax:[\"e\"],description:\"Euler's number, the base of the natural logarithm. Approximately equal to 2.71828\",examples:[\"e\",\"e ^ 2\",\"exp(2)\",\"log(e)\"],seealso:[\"exp\"]}},function(e,t){e.exports={name:\"false\",category:\"Constants\",syntax:[\"false\"],description:\"Boolean value false\",examples:[\"false\"],seealso:[\"true\"]}},function(e,t){e.exports={name:\"i\",category:\"Constants\",syntax:[\"i\"],description:\"Imaginary unit, defined as i*i=-1. A complex number is described as a + b*i, where a is the real part, and b is the imaginary part.\",examples:[\"i\",\"i * i\",\"sqrt(-1)\"],seealso:[]}},function(e,t){e.exports={name:\"Infinity\",category:\"Constants\",syntax:[\"Infinity\"],description:\"Infinity, a number which is larger than the maximum number that can be handled by a floating point number.\",examples:[\"Infinity\",\"1 / 0\"],seealso:[]}},function(e,t){e.exports={name:\"LN2\",category:\"Constants\",syntax:[\"LN2\"],description:\"Returns the natural logarithm of 2, approximately equal to 0.693\",examples:[\"LN2\",\"log(2)\"],seealso:[]}},function(e,t){e.exports={name:\"LN10\",category:\"Constants\",syntax:[\"LN10\"],description:\"Returns the natural logarithm of 10, approximately equal to 2.302\",examples:[\"LN10\",\"log(10)\"],seealso:[]}},function(e,t){e.exports={name:\"LOG2E\",category:\"Constants\",syntax:[\"LOG2E\"],description:\"Returns the base-2 logarithm of E, approximately equal to 1.442\",examples:[\"LOG2E\",\"log(e, 2)\"],seealso:[]}},function(e,t){e.exports={name:\"LOG10E\",category:\"Constants\",syntax:[\"LOG10E\"],description:\"Returns the base-10 logarithm of E, approximately equal to 0.434\",examples:[\"LOG10E\",\"log(e, 10)\"],seealso:[]}},function(e,t){e.exports={name:\"NaN\",category:\"Constants\",syntax:[\"NaN\"],description:\"Not a number\",examples:[\"NaN\",\"0 / 0\"],seealso:[]}},function(e,t){e.exports={name:\"null\",category:\"Constants\",syntax:[\"null\"],description:\"Value null\",examples:[\"null\"],seealso:[\"true\",\"false\"]}},function(e,t){e.exports={name:\"pi\",category:\"Constants\",syntax:[\"pi\"],description:\"The number pi is a mathematical constant that is the ratio of a circle's circumference to its diameter, and is approximately equal to 3.14159\",examples:[\"pi\",\"sin(pi/2)\"],seealso:[\"tau\"]}},function(e,t){e.exports={name:\"phi\",category:\"Constants\",syntax:[\"phi\"],description:\"Phi is the golden ratio. Two quantities are in the golden ratio if their ratio is the same as the ratio of their sum to the larger of the two quantities. Phi is defined as `(1 + sqrt(5)) / 2` and is approximately 1.618034...\",examples:[\"tau\"],seealso:[]}},function(e,t){e.exports={name:\"SQRT1_2\",category:\"Constants\",syntax:[\"SQRT1_2\"],description:\"Returns the square root of 1/2, approximately equal to 0.707\",examples:[\"SQRT1_2\",\"sqrt(1/2)\"],seealso:[]}},function(e,t){e.exports={name:\"SQRT2\",category:\"Constants\",syntax:[\"SQRT2\"],description:\"Returns the square root of 2, approximately equal to 1.414\",examples:[\"SQRT2\",\"sqrt(2)\"],seealso:[]}},function(e,t){e.exports={name:\"tau\",category:\"Constants\",syntax:[\"tau\"],description:\"Tau is the ratio constant of a circle's circumference to radius, equal to 2 * pi, approximately 6.2832.\",examples:[\"tau\",\"2 * pi\"],seealso:[\"pi\"]}},function(e,t){e.exports={name:\"true\",category:\"Constants\",syntax:[\"true\"],description:\"Boolean value true\",examples:[\"true\"],seealso:[\"false\"]}},function(e,t){e.exports={name:\"version\",category:\"Constants\",syntax:[\"version\"],description:\"A string with the version number of math.js\",examples:[\"version\"],seealso:[]}},function(e,t){e.exports={name:\"lsolve\",category:\"Algebra\",syntax:[\"x=lsolve(L, b)\"],description:\"Solves the linear system L * x = b where L is an [n x n] lower triangular matrix and b is a [n] column vector.\",examples:[\"a = [-2, 3; 2, 1]\",\"b = [11, 9]\",\"x = lsolve(a, b)\"],seealso:[\"lup\",\"lusolve\",\"usolve\",\"matrix\",\"sparse\"]}},function(e,t){e.exports={name:\"lup\",category:\"Algebra\",syntax:[\"lup(m)\"],description:\"Calculate the Matrix LU decomposition with partial pivoting. Matrix A is decomposed in three matrices (L, U, P) where P * A = L * U\",examples:[\"lup([[2, 1], [1, 4]])\",\"lup(matrix([[2, 1], [1, 4]]))\",\"lup(sparse([[2, 1], [1, 4]]))\"],seealso:[\"lusolve\",\"lsolve\",\"usolve\",\"matrix\",\"sparse\",\"slu\"]}},function(e,t){e.exports={name:\"lusolve\",category:\"Algebra\",syntax:[\"x=lusolve(A, b)\",\"x=lusolve(lu, b)\"],description:\"Solves the linear system A * x = b where A is an [n x n] matrix and b is a [n] column vector.\",examples:[\"a = [-2, 3; 2, 1]\",\"b = [11, 9]\",\"x = lusolve(a, b)\"],seealso:[\"lup\",\"slu\",\"lsolve\",\"usolve\",\"matrix\",\"sparse\"]}},function(e,t){e.exports={name:\"slu\",category:\"Algebra\",syntax:[\"slu(A, order, threshold)\"],description:\"Calculate the Matrix LU decomposition with full pivoting. Matrix A is decomposed in two matrices (L, U) and two permutation vectors (pinv, q) where P * A * Q = L * U\",examples:[\"slu(sparse([4.5, 0, 3.2, 0; 3.1, 2.9, 0, 0.9; 0, 1.7, 3, 0; 3.5, 0.4, 0, 1]), 1, 0.001)\"],seealso:[\"lusolve\",\"lsolve\",\"usolve\",\"matrix\",\"sparse\",\"lup\"]}},function(e,t){e.exports={name:\"usolve\",category:\"Algebra\",syntax:[\"x=usolve(U, b)\"],description:\"Solves the linear system U * x = b where U is an [n x n] upper triangular matrix and b is a [n] column vector.\",examples:[\"x=usolve(sparse([1, 1, 1, 1; 0, 1, 1, 1; 0, 0, 1, 1; 0, 0, 0, 1]), [1; 2; 3; 4])\"],seealso:[\"lup\",\"lusolve\",\"lsolve\",\"matrix\",\"sparse\"]}},function(e,t){e.exports={name:\"abs\",category:\"Arithmetic\",syntax:[\"abs(x)\"],description:\"Compute the absolute value.\",examples:[\"abs(3.5)\",\"abs(-4.2)\"],seealso:[\"sign\"]}},function(e,t){e.exports={name:\"add\",category:\"Operators\",syntax:[\"x + y\",\"add(x, y)\"],description:\"Add two values.\",examples:[\"a = 2.1 + 3.6\",\"a - 3.6\",\"3 + 2i\",\"3 cm + 2 inch\",'\"2.3\" + \"4\"'],seealso:[\"subtract\"]}},function(e,t){e.exports={name:\"cbrt\",category:\"Arithmetic\",syntax:[\"cbrt(x)\",\"cbrt(x, allRoots)\"],description:\"Compute the cubic root value. If x = y * y * y, then y is the cubic root of x. When `x` is a number or complex number, an optional second argument `allRoots` can be provided to return all three cubic roots. If not provided, the principal root is returned\",examples:[\"cbrt(64)\",\"cube(4)\",\"cbrt(-8)\",\"cbrt(2 + 3i)\",\"cbrt(8i)\",\"cbrt(8i, true)\",\"cbrt(27 m^3)\"],seealso:[\"square\",\"sqrt\",\"cube\",\"multiply\"]}},function(e,t){e.exports={name:\"ceil\",category:\"Arithmetic\",syntax:[\"ceil(x)\"],description:\"Round a value towards plus infinity. If x is complex, both real and imaginary part are rounded towards plus infinity.\",examples:[\"ceil(3.2)\",\"ceil(3.8)\",\"ceil(-4.2)\"],seealso:[\"floor\",\"fix\",\"round\"]}},function(e,t){e.exports={name:\"cube\",category:\"Arithmetic\",syntax:[\"cube(x)\"],description:\"Compute the cube of a value. The cube of x is x * x * x.\",examples:[\"cube(2)\",\"2^3\",\"2 * 2 * 2\"],seealso:[\"multiply\",\"square\",\"pow\"]}},function(e,t){e.exports={name:\"divide\",category:\"Operators\",syntax:[\"x / y\",\"divide(x, y)\"],description:\"Divide two values.\",examples:[\"a = 2 / 3\",\"a * 3\",\"4.5 / 2\",\"3 + 4 / 2\",\"(3 + 4) / 2\",\"18 km / 4.5\"],seealso:[\"multiply\"]}},function(e,t){e.exports={name:\"dotDivide\",category:\"Operators\",syntax:[\"x ./ y\",\"dotDivide(x, y)\"],description:\"Divide two values element wise.\",examples:[\"a = [1, 2, 3; 4, 5, 6]\",\"b = [2, 1, 1; 3, 2, 5]\",\"a ./ b\"],seealso:[\"multiply\",\"dotMultiply\",\"divide\"]}},function(e,t){e.exports={name:\"dotMultiply\",category:\"Operators\",syntax:[\"x .* y\",\"dotMultiply(x, y)\"],description:\"Multiply two values element wise.\",examples:[\"a = [1, 2, 3; 4, 5, 6]\",\"b = [2, 1, 1; 3, 2, 5]\",\"a .* b\"],seealso:[\"multiply\",\"divide\",\"dotDivide\"]}},function(e,t){e.exports={name:\"dotpow\",category:\"Operators\",syntax:[\"x .^ y\",\"dotpow(x, y)\"],description:\"Calculates the power of x to y element wise.\",examples:[\"a = [1, 2, 3; 4, 5, 6]\",\"a .^ 2\"],seealso:[\"pow\"]}},function(e,t){e.exports={name:\"exp\",category:\"Arithmetic\",syntax:[\"exp(x)\"],description:\"Calculate the exponent of a value.\",examples:[\"exp(1.3)\",\"e ^ 1.3\",\"log(exp(1.3))\",\"x = 2.4\",\"(exp(i*x) == cos(x) + i*sin(x)) # Euler's formula\"],seealso:[\"pow\",\"log\"]}},function(e,t){e.exports={name:\"fix\",category:\"Arithmetic\",syntax:[\"fix(x)\"],description:\"Round a value towards zero. If x is complex, both real and imaginary part are rounded towards zero.\",examples:[\"fix(3.2)\",\"fix(3.8)\",\"fix(-4.2)\",\"fix(-4.8)\"],seealso:[\"ceil\",\"floor\",\"round\"]}},function(e,t){e.exports={name:\"floor\",category:\"Arithmetic\",syntax:[\"floor(x)\"],description:\"Round a value towards minus infinity.If x is complex, both real and imaginary part are rounded towards minus infinity.\",examples:[\"floor(3.2)\",\"floor(3.8)\",\"floor(-4.2)\"],seealso:[\"ceil\",\"fix\",\"round\"]}},function(e,t){e.exports={name:\"gcd\",category:\"Arithmetic\",syntax:[\"gcd(a, b)\",\"gcd(a, b, c, ...)\"],description:\"Compute the greatest common divisor.\",examples:[\"gcd(8, 12)\",\"gcd(-4, 6)\",\"gcd(25, 15, -10)\"],seealso:[\"lcm\",\"xgcd\"]}},function(e,t){e.exports={name:\"hypot\",category:\"Arithmetic\",syntax:[\"hypot(a, b, c, ...)\",\"hypot([a, b, c, ...])\"],description:\"Calculate the hypotenusa of a list with values. \",examples:[\"hypot(3, 4)\",\"sqrt(3^2 + 4^2)\",\"hypot(-2)\",\"hypot([3, 4, 5])\"],seealso:[\"abs\",\"norm\"]}},function(e,t){e.exports={name:\"lcm\",category:\"Arithmetic\",syntax:[\"lcm(x, y)\"],description:\"Compute the least common multiple.\",examples:[\"lcm(4, 6)\",\"lcm(6, 21)\",\"lcm(6, 21, 5)\"],seealso:[\"gcd\"]}},function(e,t){e.exports={name:\"log\",category:\"Arithmetic\",syntax:[\"log(x)\",\"log(x, base)\"],description:\"Compute the logarithm of a value. If no base is provided, the natural logarithm of x is calculated. If base if provided, the logarithm is calculated for the specified base. log(x, base) is defined as log(x) / log(base).\",examples:[\"log(3.5)\",\"a = log(2.4)\",\"exp(a)\",\"10 ^ 4\",\"log(10000, 10)\",\"log(10000) / log(10)\",\"b = log(1024, 2)\",\"2 ^ b\"],seealso:[\"exp\",\"log10\"]}},function(e,t){e.exports={name:\"log10\",category:\"Arithmetic\",syntax:[\"log10(x)\"],description:\"Compute the 10-base logarithm of a value.\",examples:[\"log10(0.00001)\",\"log10(10000)\",\"10 ^ 4\",\"log(10000) / log(10)\",\"log(10000, 10)\"],seealso:[\"exp\",\"log\"]}},function(e,t){e.exports={name:\"mod\",category:\"Operators\",syntax:[\"x % y\",\"x mod y\",\"mod(x, y)\"],description:\"Calculates the modulus, the remainder of an integer division.\",examples:[\"7 % 3\",\"11 % 2\",\"10 mod 4\",\"function isOdd(x) = x % 2\",\"isOdd(2)\",\"isOdd(3)\"],seealso:[\"divide\"]}},function(e,t){e.exports={name:\"multiply\",category:\"Operators\",syntax:[\"x * y\",\"multiply(x, y)\"],description:\"multiply two values.\",examples:[\"a = 2.1 * 3.4\",\"a / 3.4\",\"2 * 3 + 4\",\"2 * (3 + 4)\",\"3 * 2.1 km\"],seealso:[\"divide\"]}},function(e,t){e.exports={name:\"norm\",category:\"Arithmetic\",syntax:[\"norm(x)\",\"norm(x, p)\"],description:\"Calculate the norm of a number, vector or matrix.\",examples:[\"abs(-3.5)\",\"norm(-3.5)\",\"norm(3 - 4i))\",\"norm([1, 2, -3], Infinity)\",\"norm([1, 2, -3], -Infinity)\",\"norm([3, 4], 2)\",\"norm([[1, 2], [3, 4]], 1)\",\"norm([[1, 2], [3, 4]], 'inf')\",\"norm([[1, 2], [3, 4]], 'fro')\"]}},function(e,t){e.exports={name:\"nthRoot\",category:\"Arithmetic\",syntax:[\"nthRoot(a)\",\"nthRoot(a, root)\"],description:'Calculate the nth root of a value. The principal nth root of a positive real number A, is the positive real solution of the equation \"x^root = A\".',examples:[\"4 ^ 3\",\"nthRoot(64, 3)\",\"nthRoot(9, 2)\",\"sqrt(9)\"],seealso:[\"sqrt\",\"pow\"]}},function(e,t){e.exports={name:\"pow\",category:\"Operators\",syntax:[\"x ^ y\",\"pow(x, y)\"],description:\"Calculates the power of x to y, x^y.\",examples:[\"2^3 = 8\",\"2*2*2\",\"1 + e ^ (pi * i)\"],seealso:[\"multiply\"]}},function(e,t){e.exports={name:\"round\",category:\"Arithmetic\",syntax:[\"round(x)\",\"round(x, n)\"],description:\"round a value towards the nearest integer.If x is complex, both real and imaginary part are rounded towards the nearest integer. When n is specified, the value is rounded to n decimals.\",examples:[\"round(3.2)\",\"round(3.8)\",\"round(-4.2)\",\"round(-4.8)\",\"round(pi, 3)\",\"round(123.45678, 2)\"],seealso:[\"ceil\",\"floor\",\"fix\"]}},function(e,t){e.exports={name:\"sign\",category:\"Arithmetic\",syntax:[\"sign(x)\"],description:\"Compute the sign of a value. The sign of a value x is 1 when x>1, -1 when x<0, and 0 when x=0.\",examples:[\"sign(3.5)\",\"sign(-4.2)\",\"sign(0)\"],seealso:[\"abs\"]}},function(e,t){e.exports={name:\"sqrt\",category:\"Arithmetic\",syntax:[\"sqrt(x)\"],description:\"Compute the square root value. If x = y * y, then y is the square root of x.\",examples:[\"sqrt(25)\",\"5 * 5\",\"sqrt(-1)\"],seealso:[\"square\",\"multiply\"]}},function(e,t){e.exports={name:\"square\",category:\"Arithmetic\",syntax:[\"square(x)\"],description:\"Compute the square of a value. The square of x is x * x.\",examples:[\"square(3)\",\"sqrt(9)\",\"3^2\",\"3 * 3\"],seealso:[\"multiply\",\"pow\",\"sqrt\",\"cube\"]}},function(e,t){e.exports={name:\"subtract\",category:\"Operators\",syntax:[\"x - y\",\"subtract(x, y)\"],description:\"subtract two values.\",examples:[\"a = 5.3 - 2\",\"a + 2\",\"2/3 - 1/6\",\"2 * 3 - 3\",\"2.1 km - 500m\"],seealso:[\"add\"]}},function(e,t){e.exports={name:\"unaryMinus\",category:\"Operators\",syntax:[\"-x\",\"unaryMinus(x)\"],description:\"Inverse the sign of a value. Converts booleans and strings to numbers.\",examples:[\"-4.5\",\"-(-5.6)\",'-\"22\"'],seealso:[\"add\",\"subtract\",\"unaryPlus\"]}},function(e,t){e.exports={name:\"unaryPlus\",category:\"Operators\",syntax:[\"+x\",\"unaryPlus(x)\"],description:\"Converts booleans and strings to numbers.\",examples:[\"+true\",'+\"2\"'],seealso:[\"add\",\"subtract\",\"unaryMinus\"]}},function(e,t){e.exports={name:\"xgcd\",category:\"Arithmetic\",syntax:[\"xgcd(a, b)\"],description:\"Calculate the extended greatest common divisor for two values\",examples:[\"xgcd(8, 12)\",\"gcd(8, 12)\",\"xgcd(36163, 21199)\"],seealso:[\"gcd\",\"lcm\"]}},function(e,t){e.exports={name:\"bitAnd\",category:\"Bitwise\",syntax:[\"x & y\",\"bitAnd(x, y)\"],description:\"Bitwise AND operation. Performs the logical AND operation on each pair of the corresponding bits of the two given values by multiplying them. If both bits in the compared position are 1, the bit in the resulting binary representation is 1, otherwise, the result is 0\",examples:[\"5 & 3\",\"bitAnd(53, 131)\",\"[1, 12, 31] & 42\"],seealso:[\"bitNot\",\"bitOr\",\"bitXor\",\"leftShift\",\"rightArithShift\",\"rightLogShift\"]}},function(e,t){e.exports={name:\"bitNot\",category:\"Bitwise\",syntax:[\"~x\",\"bitNot(x)\"],description:\"Bitwise NOT operation. Performs a logical negation on each bit of the given value. Bits that are 0 become 1, and those that are 1 become 0.\",examples:[\"~1\",\"~2\",\"bitNot([2, -3, 4])\"],seealso:[\"bitAnd\",\"bitOr\",\"bitXor\",\"leftShift\",\"rightArithShift\",\"rightLogShift\"]}},function(e,t){e.exports={name:\"bitOr\",category:\"Bitwise\",syntax:[\"x | y\",\"bitOr(x, y)\"],description:\"Bitwise OR operation. Performs the logical inclusive OR operation on each pair of corresponding bits of the two given values. The result in each position is 1 if the first bit is 1 or the second bit is 1 or both bits are 1, otherwise, the result is 0.\",examples:[\"5 | 3\",\"bitOr([1, 2, 3], 4)\"],seealso:[\"bitAnd\",\"bitNot\",\"bitXor\",\"leftShift\",\"rightArithShift\",\"rightLogShift\"]}},function(e,t){e.exports={name:\"bitXor\",category:\"Bitwise\",syntax:[\"bitXor(x, y)\"],description:\"Bitwise XOR operation, exclusive OR. Performs the logical exclusive OR operation on each pair of corresponding bits of the two given values. The result in each position is 1 if only the first bit is 1 or only the second bit is 1, but will be 0 if both are 0 or both are 1.\",examples:[\"bitOr(1, 2)\",\"bitXor([2, 3, 4], 4)\"],seealso:[\"bitAnd\",\"bitNot\",\"bitOr\",\"leftShift\",\"rightArithShift\",\"rightLogShift\"]}},function(e,t){e.exports={name:\"leftShift\",category:\"Bitwise\",syntax:[\"x << y\",\"leftShift(x, y)\"],description:\"Bitwise left logical shift of a value x by y number of bits.\",examples:[\"4 << 1\",\"8 >> 1\"],seealso:[\"bitAnd\",\"bitNot\",\"bitOr\",\"bitXor\",\"rightArithShift\",\"rightLogShift\"]}},function(e,t){e.exports={name:\"rightArithShift\",category:\"Bitwise\",syntax:[\"x >> y\",\"leftShift(x, y)\"],description:\"Bitwise right arithmetic shift of a value x by y number of bits.\",examples:[\"8 >> 1\",\"4 << 1\",\"-12 >> 2\"],seealso:[\"bitAnd\",\"bitNot\",\"bitOr\",\"bitXor\",\"leftShift\",\"rightLogShift\"]}},function(e,t){e.exports={name:\"rightLogShift\",category:\"Bitwise\",syntax:[\"x >> y\",\"leftShift(x, y)\"],description:\"Bitwise right logical shift of a value x by y number of bits.\",examples:[\"8 >>> 1\",\"4 << 1\",\"-12 >>> 2\"],seealso:[\"bitAnd\",\"bitNot\",\"bitOr\",\"bitXor\",\"leftShift\",\"rightArithShift\"]}},function(e,t){e.exports={name:\"bellNumbers\",category:\"Combinatorics\",syntax:[\"bellNumbers(n)\"],description:\"The Bell Numbers count the number of partitions of a set. A partition is a pairwise disjoint subset of S whose union is S. `bellNumbers` only takes integer arguments. The following condition must be enforced: n >= 0.\",examples:[\"bellNumbers(3)\",\"bellNumbers(8)\"],seealso:[\"stirlingS2\"]}},function(e,t){e.exports={name:\"catalan\",category:\"Combinatorics\",syntax:[\"catalan(n)\"],description:\"The Catalan Numbers enumerate combinatorial structures of many different types. catalan only takes integer arguments. The following condition must be enforced: n >= 0.\",examples:[\"catalan(3)\",\"catalan(8)\"],seealso:[\"bellNumbers\"]}},function(e,t){e.exports={name:\"composition\",category:\"Combinatorics\",syntax:[\"composition(n, k)\"],description:\"The composition counts of n into k parts. composition only takes integer arguments. The following condition must be enforced: k <= n.\",examples:[\"composition(5, 3)\"],seealso:[\"combinations\"]}},function(e,t){e.exports={name:\"stirlingS2\",category:\"Combinatorics\",syntax:[\"stirlingS2(n, k)\"],description:\"he Stirling numbers of the second kind, counts the number of ways to partition a set of n labelled objects into k nonempty unlabelled subsets. `stirlingS2` only takes integer arguments. The following condition must be enforced: k <= n. If n = k or k = 1, then s(n,k) = 1.\",examples:[\"stirlingS2(5, 3)\"],seealso:[\"bellNumbers\"]}},function(e,t){e.exports={name:\"arg\",category:\"Complex\",syntax:[\"arg(x)\"],description:\"Compute the argument of a complex value. If x = a+bi, the argument is computed as atan2(b, a).\",examples:[\"arg(2 + 2i)\",\"atan2(3, 2)\",\"arg(2 + 3i)\"],seealso:[\"re\",\"im\",\"conj\",\"abs\"]}},function(e,t){e.exports={name:\"conj\",category:\"Complex\",syntax:[\"conj(x)\"],description:\"Compute the complex conjugate of a complex value. If x = a+bi, the complex conjugate is a-bi.\",examples:[\"conj(2 + 3i)\",\"conj(2 - 3i)\",\"conj(-5.2i)\"],seealso:[\"re\",\"im\",\"abs\",\"arg\"]}},function(e,t){e.exports={name:\"re\",category:\"Complex\",syntax:[\"re(x)\"],description:\"Get the real part of a complex number.\",examples:[\"re(2 + 3i)\",\"im(2 + 3i)\",\"re(-5.2i)\",\"re(2.4)\"],seealso:[\"im\",\"conj\",\"abs\",\"arg\"]}},function(e,t){e.exports={name:\"im\",category:\"Complex\",syntax:[\"im(x)\"],description:\"Get the imaginary part of a complex number.\",examples:[\"im(2 + 3i)\",\"re(2 + 3i)\",\"im(-5.2i)\",\"im(2.4)\"],seealso:[\"re\",\"conj\",\"abs\",\"arg\"]}},function(e,t){e.exports={name:\"eval\",category:\"Expression\",syntax:[\"eval(expression)\",\"eval([expr1, expr2, expr3, ...])\"],description:\"Evaluate an expression or an array with expressions.\",examples:['eval(\"2 + 3\")','eval(\"sqrt(\" + 4 + \")\")'],seealso:[]}},function(e,t){e.exports={name:\"help\",category:\"Expression\",syntax:[\"help(object)\",\"help(string)\"],description:\"Display documentation on a function or data type.\",examples:[\"help(sqrt)\",'help(\"complex\")'],seealso:[]}},function(e,t){e.exports={name:\"distance\",category:\"Geometry\",syntax:[\"distance([x1, y1], [x2, y2])\",\"distance([[x1, y1], [x2, y2])\"],description:\"Calculates the Euclidean distance between two points.\",examples:[\"distance([0,0], [4,4])\",\"distance([[0,0], [4,4]])\"],seealso:[]}},function(e,t){e.exports={name:\"intersect\",category:\"Geometry\",syntax:[\"intersect(expr1, expr2, expr3, expr4)\",\"intersect(expr1, expr2, expr3)\"],description:\"Computes the intersection point of lines and/or planes.\",examples:[\"intersect([0, 0], [10, 10], [10, 0], [0, 10])\",\"intersect([1, 0, 1], [4, -2, 2], [1, 1, 1, 6])\"],seealso:[]}},function(e,t){e.exports={name:\"and\",category:\"Logical\",syntax:[\"x and y\",\"and(x, y)\"],description:\"Logical and. Test whether two values are both defined with a nonzero/nonempty value.\",examples:[\"true and false\",\"true and true\",\"2 and 4\"],seealso:[\"not\",\"or\",\"xor\"]}},function(e,t){e.exports={name:\"not\",category:\"Logical\",syntax:[\"not x\",\"not(x)\"],description:\"Logical not. Flips the boolean value of given argument.\",examples:[\"not true\",\"not false\",\"not 2\",\"not 0\"],seealso:[\"and\",\"or\",\"xor\"]}},function(e,t){e.exports={name:\"or\",category:\"Logical\",syntax:[\"x or y\",\"or(x, y)\"],description:\"Logical or. Test if at least one value is defined with a nonzero/nonempty value.\",examples:[\"true or false\",\"false or false\",\"0 or 4\"],seealso:[\"not\",\"and\",\"xor\"]}},function(e,t){e.exports={name:\"xor\",category:\"Logical\",syntax:[\"x or y\",\"or(x, y)\"],description:\"Logical exclusive or, xor. Test whether one and only one value is defined with a nonzero/nonempty value.\",examples:[\"true xor false\",\"false xor false\",\"true xor true\",\"0 or 4\"],seealso:[\"not\",\"and\",\"or\"]}},function(e,t){e.exports={name:\"concat\",category:\"Matrix\",syntax:[\"concat(A, B, C, ...)\",\"concat(A, B, C, ..., dim)\"],description:\"Concatenate matrices. By default, the matrices are concatenated by the last dimension. The dimension on which to concatenate can be provided as last argument.\",examples:[\"A = [1, 2; 5, 6]\",\"B = [3, 4; 7, 8]\",\"concat(A, B)\",\"concat(A, B, 1)\",\"concat(A, B, 2)\"],seealso:[\"det\",\"diag\",\"eye\",\"inv\",\"ones\",\"range\",\"size\",\"squeeze\",\"subset\",\"trace\",\"transpose\",\"zeros\"]}},function(e,t){e.exports={name:\"cross\",category:\"Matrix\",syntax:[\"cross(A, B)\"],description:\"Calculate the cross product for two vectors in three dimensional space.\",examples:[\"cross([1, 1, 0], [0, 1, 1])\",\"cross([3, -3, 1], [4, 9, 2])\",\"cross([2, 3, 4], [5, 6, 7])\"],seealso:[\"multiply\",\"dot\"]}},function(e,t){e.exports={name:\"det\",category:\"Matrix\",syntax:[\"det(x)\"],description:\"Calculate the determinant of a matrix\",examples:[\"det([1, 2; 3, 4])\",\"det([-2, 2, 3; -1, 1, 3; 2, 0, -1])\"],seealso:[\"concat\",\"diag\",\"eye\",\"inv\",\"ones\",\"range\",\"size\",\"squeeze\",\"subset\",\"trace\",\"transpose\",\"zeros\"]}},function(e,t){e.exports={name:\"diag\",category:\"Matrix\",syntax:[\"diag(x)\",\"diag(x, k)\"],description:\"Create a diagonal matrix or retrieve the diagonal of a matrix. When x is a vector, a matrix with the vector values on the diagonal will be returned. When x is a matrix, a vector with the diagonal values of the matrix is returned. When k is provided, the k-th diagonal will be filled in or retrieved, if k is positive, the values are placed on the super diagonal. When k is negative, the values are placed on the sub diagonal.\",examples:[\"diag(1:3)\",\"diag(1:3, 1)\",\"a = [1, 2, 3; 4, 5, 6; 7, 8, 9]\",\"diag(a)\"],seealso:[\"concat\",\"det\",\"eye\",\"inv\",\"ones\",\"range\",\"size\",\"squeeze\",\"subset\",\"trace\",\"transpose\",\"zeros\"]}},function(e,t){e.exports={name:\"dot\",category:\"Matrix\",syntax:[\"dot(A, B)\"],description:\"Calculate the dot product of two vectors. The dot product of A = [a1, a2, a3, ..., an] and B = [b1, b2, b3, ..., bn] is defined as dot(A, B) = a1 * b1 + a2 * b2 + a3 * b3 + ... + an * bn\",examples:[\"dot([2, 4, 1], [2, 2, 3])\",\"[2, 4, 1] * [2, 2, 3]\"],seealso:[\"multiply\",\"cross\"]}},function(e,t){e.exports={name:\"eye\",category:\"Matrix\",syntax:[\"eye(n)\",\"eye(m, n)\",\"eye([m, n])\",\"eye\"],description:\"Returns the identity matrix with size m-by-n. The matrix has ones on the diagonal and zeros elsewhere.\",examples:[\"eye(3)\",\"eye(3, 5)\",\"a = [1, 2, 3; 4, 5, 6]\",\"eye(size(a))\"],seealso:[\"concat\",\"det\",\"diag\",\"inv\",\"ones\",\"range\",\"size\",\"squeeze\",\"subset\",\"trace\",\"transpose\",\"zeros\"]}},function(e,t){e.exports={name:\"flatten\",category:\"Matrix\",syntax:[\"flatten(x)\"],description:\"Flatten a multi dimensional matrix into a single dimensional matrix.\",examples:[\"a = [1, 2, 3; 4, 5, 6]\",\"size(a)\",\"b = flatten(a)\",\"size(b)\"],seealso:[\"concat\",\"resize\",\"size\",\"squeeze\"]}},function(e,t){e.exports={name:\"inv\",category:\"Matrix\",syntax:[\"inv(x)\"],description:\"Calculate the inverse of a matrix\",examples:[\"inv([1, 2; 3, 4])\",\"inv(4)\",\"1 / 4\"],seealso:[\"concat\",\"det\",\"diag\",\"eye\",\"ones\",\"range\",\"size\",\"squeeze\",\"subset\",\"trace\",\"transpose\",\"zeros\"]}},function(e,t){e.exports={name:\"ones\",category:\"Matrix\",syntax:[\"ones(m)\",\"ones(m, n)\",\"ones(m, n, p, ...)\",\"ones([m])\",\"ones([m, n])\",\"ones([m, n, p, ...])\",\"ones\"],description:\"Create a matrix containing ones.\",examples:[\"ones(3)\",\"ones(3, 5)\",\"ones([2,3]) * 4.5\",\"a = [1, 2, 3; 4, 5, 6]\",\"ones(size(a))\"],seealso:[\"concat\",\"det\",\"diag\",\"eye\",\"inv\",\"range\",\"size\",\"squeeze\",\"subset\",\"trace\",\"transpose\",\"zeros\"]}},function(e,t){e.exports={name:\"range\",category:\"Type\",syntax:[\"start:end\",\"start:step:end\",\"range(start, end)\",\"range(start, end, step)\",\"range(string)\"],description:\"Create a range. Lower bound of the range is included, upper bound is excluded.\",examples:[\"1:5\",\"3:-1:-3\",\"range(3, 7)\",\"range(0, 12, 2)\",'range(\"4:10\")',\"a = [1, 2, 3, 4; 5, 6, 7, 8]\",\"a[1:2, 1:2]\"],seealso:[\"concat\",\"det\",\"diag\",\"eye\",\"inv\",\"ones\",\"size\",\"squeeze\",\"subset\",\"trace\",\"transpose\",\"zeros\"]}},function(e,t){e.exports={name:\"resize\",category:\"Matrix\",syntax:[\"resize(x, size)\",\"resize(x, size, defaultValue)\"],description:\"Resize a matrix.\",examples:[\"resize([1,2,3,4,5], [3])\",\"resize([1,2,3], [5])\",\"resize([1,2,3], [5], -1)\",\"resize(2, [2, 3])\",'resize(\"hello\", [8], \"!\")'],seealso:[\"size\",\"subset\",\"squeeze\"]}},function(e,t){e.exports={name:\"size\",category:\"Matrix\",syntax:[\"size(x)\"],description:\"Calculate the size of a matrix.\",examples:[\"size(2.3)\",'size(\"hello world\")',\"a = [1, 2; 3, 4; 5, 6]\",\"size(a)\",\"size(1:6)\"],seealso:[\"concat\",\"det\",\"diag\",\"eye\",\"inv\",\"ones\",\"range\",\"squeeze\",\"subset\",\"trace\",\"transpose\",\"zeros\"]}},function(e,t){e.exports={name:\"squeeze\",category:\"Matrix\",syntax:[\"squeeze(x)\"],description:\"Remove inner and outer singleton dimensions from a matrix.\",examples:[\"a = zeros(3,2,1)\",\"size(squeeze(a))\",\"b = zeros(1,1,3)\",\"size(squeeze(b))\"],seealso:[\"concat\",\"det\",\"diag\",\"eye\",\"inv\",\"ones\",\"range\",\"size\",\"subset\",\"trace\",\"transpose\",\"zeros\"]}},function(e,t){e.exports={name:\"subset\",category:\"Matrix\",syntax:[\"value(index)\",\"value(index) = replacement\",\"subset(value, [index])\",\"subset(value, [index], replacement)\"],description:\"Get or set a subset of a matrix or string. Indexes are one-based. Both the ranges lower-bound and upper-bound are included.\",examples:[\"d = [1, 2; 3, 4]\",\"e = []\",\"e[1, 1:2] = [5, 6]\",\"e[2, :] = [7, 8]\",\"f = d * e\",\"f[2, 1]\",\"f[:, 1]\"],seealso:[\"concat\",\"det\",\"diag\",\"eye\",\"inv\",\"ones\",\"range\",\"size\",\"squeeze\",\"trace\",\"transpose\",\"zeros\"]}},function(e,t){e.exports={name:\"trace\",category:\"Matrix\",syntax:[\"trace(A)\"],description:\"Calculate the trace of a matrix: the sum of the elements on the main diagonal of a square matrix.\",examples:[\"A = [1, 2, 3; -1, 2, 3; 2, 0, 3]\",\"trace(A)\"],seealso:[\"concat\",\"det\",\"diag\",\"eye\",\"inv\",\"ones\",\"range\",\"size\",\"squeeze\",\"subset\",\"transpose\",\"zeros\"]\n}},function(e,t){e.exports={name:\"transpose\",category:\"Matrix\",syntax:[\"x'\",\"transpose(x)\"],description:\"Transpose a matrix\",examples:[\"a = [1, 2, 3; 4, 5, 6]\",\"a'\",\"transpose(a)\"],seealso:[\"concat\",\"det\",\"diag\",\"eye\",\"inv\",\"ones\",\"range\",\"size\",\"squeeze\",\"subset\",\"trace\",\"zeros\"]}},function(e,t){e.exports={name:\"zeros\",category:\"Matrix\",syntax:[\"zeros(m)\",\"zeros(m, n)\",\"zeros(m, n, p, ...)\",\"zeros([m])\",\"zeros([m, n])\",\"zeros([m, n, p, ...])\",\"zeros\"],description:\"Create a matrix containing zeros.\",examples:[\"zeros(3)\",\"zeros(3, 5)\",\"a = [1, 2, 3; 4, 5, 6]\",\"zeros(size(a))\"],seealso:[\"concat\",\"det\",\"diag\",\"eye\",\"inv\",\"ones\",\"range\",\"size\",\"squeeze\",\"subset\",\"trace\",\"transpose\"]}},function(e,t){e.exports={name:\"combinations\",category:\"Probability\",syntax:[\"combinations(n, k)\"],description:\"Compute the number of combinations of n items taken k at a time\",examples:[\"combinations(7, 5)\"],seealso:[\"permutations\",\"factorial\"]}},function(e,t){e.exports={name:\"factorial\",category:\"Probability\",syntax:[\"kldivergence(x, y)\"],description:\"Compute the factorial of a value\",examples:[\"5!\",\"5 * 4 * 3 * 2 * 1\",\"3!\"],seealso:[\"combinations\",\"permutations\",\"gamma\"]}},function(e,t){e.exports={name:\"gamma\",category:\"Probability\",syntax:[\"gamma(n)\"],description:\"Compute the gamma function. For small values, the Lanczos approximation is used, and for large values the extended Stirling approximation.\",examples:[\"gamma(4)\",\"3!\",\"gamma(1/2)\",\"sqrt(pi)\"],seealso:[\"factorial\"]}},function(e,t){e.exports={name:\"kldivergence\",category:\"Probability\",syntax:[\"n!\",\"factorial(n)\"],description:\"Calculate the Kullback-Leibler (KL) divergence between two distributions.\",examples:[\"math.kldivergence([0.7,0.5,0.4], [0.2,0.9,0.5])\"],seealso:[]}},function(e,t){e.exports={name:\"multinomial\",category:\"Probability\",syntax:[\"multinomial(A)\"],description:\"Multinomial Coefficients compute the number of ways of picking a1, a2, ..., ai unordered outcomes from `n` possibilities. multinomial takes one array of integers as an argument. The following condition must be enforced: every ai <= 0.\",examples:[\"multinomial([1, 2, 1])\"],seealso:[\"combinations\",\"factorial\"]}},function(e,t){e.exports={name:\"permutations\",category:\"Probability\",syntax:[\"permutations(n)\",\"permutations(n, k)\"],description:\"Compute the number of permutations of n items taken k at a time\",examples:[\"permutations(5)\",\"permutations(5, 3)\"],seealso:[\"combinations\",\"factorial\"]}},function(e,t){e.exports={name:\"pickRandom\",category:\"Probability\",syntax:[\"pickRandom(array)\"],description:\"Pick a random entry from a given array.\",examples:[\"pickRandom(0:10)\",\"pickRandom([1, 3, 1, 6])\"],seealso:[\"random\",\"randomInt\"]}},function(e,t){e.exports={name:\"random\",category:\"Probability\",syntax:[\"random()\",\"random(max)\",\"random(min, max)\",\"random(size)\",\"random(size, max)\",\"random(size, min, max)\"],description:\"Return a random number.\",examples:[\"random()\",\"random(10, 20)\",\"random([2, 3])\"],seealso:[\"pickRandom\",\"randomInt\"]}},function(e,t){e.exports={name:\"randInt\",category:\"Probability\",syntax:[\"randInt(max)\",\"randInt(min, max)\",\"randInt(size)\",\"randInt(size, max)\",\"randInt(size, min, max)\"],description:\"Return a random integer number\",examples:[\"randInt(10, 20)\",\"randInt([2, 3], 10)\"],seealso:[\"pickRandom\",\"random\"]}},function(e,t){e.exports={name:\"compare\",category:\"Relational\",syntax:[\"compare(x, y)\"],description:\"Compare two values. Returns 1 if x is larger than y, -1 if x is smaller than y, and 0 if x and y are equal.\",examples:[\"compare(2, 3)\",\"compare(3, 2)\",\"compare(2, 2)\",\"compare(5cm, 40mm)\",\"compare(2, [1, 2, 3])\"],seealso:[\"equal\",\"unequal\",\"smaller\",\"smallerEq\",\"largerEq\"]}},function(e,t){e.exports={name:\"deepEqual\",category:\"Relational\",syntax:[\"deepEqual(x, y)\"],description:\"Check equality of two matrices element wise. Returns true if the size of both matrices is equal and when and each of the elements are equal.\",examples:[\"[1,3,4] == [1,3,4]\",\"[1,3,4] == [1,3]\"],seealso:[\"equal\",\"unequal\",\"smaller\",\"larger\",\"smallerEq\",\"largerEq\",\"compare\"]}},function(e,t){e.exports={name:\"equal\",category:\"Relational\",syntax:[\"x == y\",\"equal(x, y)\"],description:\"Check equality of two values. Returns true if the values are equal, and false if not.\",examples:[\"2+2 == 3\",\"2+2 == 4\",\"a = 3.2\",\"b = 6-2.8\",\"a == b\",\"50cm == 0.5m\"],seealso:[\"unequal\",\"smaller\",\"larger\",\"smallerEq\",\"largerEq\",\"compare\",\"deepEqual\"]}},function(e,t){e.exports={name:\"larger\",category:\"Relational\",syntax:[\"x > y\",\"larger(x, y)\"],description:\"Check if value x is larger than y. Returns true if x is larger than y, and false if not.\",examples:[\"2 > 3\",\"5 > 2*2\",\"a = 3.3\",\"b = 6-2.8\",\"(a > b)\",\"(b < a)\",\"5 cm > 2 inch\"],seealso:[\"equal\",\"unequal\",\"smaller\",\"smallerEq\",\"largerEq\",\"compare\"]}},function(e,t){e.exports={name:\"largerEq\",category:\"Relational\",syntax:[\"x >= y\",\"largerEq(x, y)\"],description:\"Check if value x is larger or equal to y. Returns true if x is larger or equal to y, and false if not.\",examples:[\"2 > 1+1\",\"2 >= 1+1\",\"a = 3.2\",\"b = 6-2.8\",\"(a > b)\"],seealso:[\"equal\",\"unequal\",\"smallerEq\",\"smaller\",\"largerEq\",\"compare\"]}},function(e,t){e.exports={name:\"smaller\",category:\"Relational\",syntax:[\"x < y\",\"smaller(x, y)\"],description:\"Check if value x is smaller than value y. Returns true if x is smaller than y, and false if not.\",examples:[\"2 < 3\",\"5 < 2*2\",\"a = 3.3\",\"b = 6-2.8\",\"(a < b)\",\"5 cm < 2 inch\"],seealso:[\"equal\",\"unequal\",\"larger\",\"smallerEq\",\"largerEq\",\"compare\"]}},function(e,t){e.exports={name:\"smallerEq\",category:\"Relational\",syntax:[\"x <= y\",\"smallerEq(x, y)\"],description:\"Check if value x is smaller or equal to value y. Returns true if x is smaller than y, and false if not.\",examples:[\"2 < 1+1\",\"2 <= 1+1\",\"a = 3.2\",\"b = 6-2.8\",\"(a < b)\"],seealso:[\"equal\",\"unequal\",\"larger\",\"smaller\",\"largerEq\",\"compare\"]}},function(e,t){e.exports={name:\"unequal\",category:\"Relational\",syntax:[\"x != y\",\"unequal(x, y)\"],description:\"Check unequality of two values. Returns true if the values are unequal, and false if they are equal.\",examples:[\"2+2 != 3\",\"2+2 != 4\",\"a = 3.2\",\"b = 6-2.8\",\"a != b\",\"50cm != 0.5m\",\"5 cm != 2 inch\"],seealso:[\"equal\",\"smaller\",\"larger\",\"smallerEq\",\"largerEq\",\"compare\",\"deepEqual\"]}},function(e,t){e.exports={name:\"max\",category:\"Statistics\",syntax:[\"max(a, b, c, ...)\",\"max(A)\",\"max(A, dim)\"],description:\"Compute the maximum value of a list of values.\",examples:[\"max(2, 3, 4, 1)\",\"max([2, 3, 4, 1])\",\"max([2, 5; 4, 3])\",\"max([2, 5; 4, 3], 1)\",\"max([2, 5; 4, 3], 2)\",\"max(2.7, 7.1, -4.5, 2.0, 4.1)\",\"min(2.7, 7.1, -4.5, 2.0, 4.1)\"],seealso:[\"mean\",\"median\",\"min\",\"prod\",\"std\",\"sum\",\"var\"]}},function(e,t){e.exports={name:\"mean\",category:\"Statistics\",syntax:[\"mean(a, b, c, ...)\",\"mean(A)\",\"mean(A, dim)\"],description:\"Compute the arithmetic mean of a list of values.\",examples:[\"mean(2, 3, 4, 1)\",\"mean([2, 3, 4, 1])\",\"mean([2, 5; 4, 3])\",\"mean([2, 5; 4, 3], 1)\",\"mean([2, 5; 4, 3], 2)\",\"mean([1.0, 2.7, 3.2, 4.0])\"],seealso:[\"max\",\"median\",\"min\",\"prod\",\"std\",\"sum\",\"var\"]}},function(e,t){e.exports={name:\"median\",category:\"Statistics\",syntax:[\"median(a, b, c, ...)\",\"median(A)\"],description:\"Compute the median of all values. The values are sorted and the middle value is returned. In case of an even number of values, the average of the two middle values is returned.\",examples:[\"median(5, 2, 7)\",\"median([3, -1, 5, 7])\"],seealso:[\"max\",\"mean\",\"min\",\"prod\",\"std\",\"sum\",\"var\"]}},function(e,t){e.exports={name:\"min\",category:\"Statistics\",syntax:[\"min(a, b, c, ...)\",\"min(A)\",\"min(A, dim)\"],description:\"Compute the minimum value of a list of values.\",examples:[\"min(2, 3, 4, 1)\",\"min([2, 3, 4, 1])\",\"min([2, 5; 4, 3])\",\"min([2, 5; 4, 3], 1)\",\"min([2, 5; 4, 3], 2)\",\"min(2.7, 7.1, -4.5, 2.0, 4.1)\",\"max(2.7, 7.1, -4.5, 2.0, 4.1)\"],seealso:[\"max\",\"mean\",\"median\",\"prod\",\"std\",\"sum\",\"var\"]}},function(e,t){e.exports={name:\"mode\",category:\"Statistics\",syntax:[\"mode(a, b, c, ...)\",\"mode(A)\",\"mode(A, a, b, B, c, ...)\"],description:\"Computes the mode of all values as an array. In case mode being more than one, multiple values are returned in an array.\",examples:[\"mode(5, 2, 7)\",\"mode([3, -1, 5, 7])\"],seealso:[\"max\",\"mean\",\"min\",\"median\",\"prod\",\"std\",\"sum\",\"var\"]}},function(e,t){e.exports={name:\"prod\",category:\"Statistics\",syntax:[\"prod(a, b, c, ...)\",\"prod(A)\"],description:\"Compute the product of all values.\",examples:[\"prod(2, 3, 4)\",\"prod([2, 3, 4])\",\"prod([2, 5; 4, 3])\"],seealso:[\"max\",\"mean\",\"min\",\"median\",\"min\",\"std\",\"sum\",\"var\"]}},function(e,t){e.exports={name:\"quantileSeq\",category:\"Statistics\",syntax:[\"quantileSeq(A, prob[, sorted])\",\"quantileSeq(A, [prob1, prob2, ...][, sorted])\",\"quantileSeq(A, N[, sorted])\"],description:\"Compute the prob order quantile of a matrix or a list with values. The sequence is sorted and the middle value is returned. Supported types of sequence values are: Number, BigNumber, Unit Supported types of probablity are: Number, BigNumber. \\n\\nIn case of a (multi dimensional) array or matrix, the prob order quantile of all elements will be calculated.\",examples:[\"quantileSeq([3, -1, 5, 7], 0.5)\",\"quantileSeq([3, -1, 5, 7], [1/3, 2/3])\",\"quantileSeq([3, -1, 5, 7], 2)\",\"quantileSeq([-1, 3, 5, 7], 0.5, true)\"],seealso:[\"mean\",\"median\",\"min\",\"max\",\"prod\",\"std\",\"sum\",\"var\"]}},function(e,t){e.exports={name:\"std\",category:\"Statistics\",syntax:[\"std(a, b, c, ...)\",\"std(A)\",\"std(A, normalization)\"],description:'Compute the standard deviation of all values, defined as std(A) = sqrt(var(A)). Optional parameter normalization can be \"unbiased\" (default), \"uncorrected\", or \"biased\".',examples:[\"std(2, 4, 6)\",\"std([2, 4, 6, 8])\",'std([2, 4, 6, 8], \"uncorrected\")','std([2, 4, 6, 8], \"biased\")',\"std([1, 2, 3; 4, 5, 6])\"],seealso:[\"max\",\"mean\",\"min\",\"median\",\"min\",\"prod\",\"sum\",\"var\"]}},function(e,t){e.exports={name:\"sum\",category:\"Statistics\",syntax:[\"sum(a, b, c, ...)\",\"sum(A)\"],description:\"Compute the sum of all values.\",examples:[\"sum(2, 3, 4, 1)\",\"sum([2, 3, 4, 1])\",\"sum([2, 5; 4, 3])\"],seealso:[\"max\",\"mean\",\"median\",\"min\",\"prod\",\"std\",\"sum\",\"var\"]}},function(e,t){e.exports={name:\"var\",category:\"Statistics\",syntax:[\"var(a, b, c, ...)\",\"var(A)\",\"var(A, normalization)\"],description:'Compute the variance of all values. Optional parameter normalization can be \"unbiased\" (default), \"uncorrected\", or \"biased\".',examples:[\"var(2, 4, 6)\",\"var([2, 4, 6, 8])\",'var([2, 4, 6, 8], \"uncorrected\")','var([2, 4, 6, 8], \"biased\")',\"var([1, 2, 3; 4, 5, 6])\"],seealso:[\"max\",\"mean\",\"min\",\"median\",\"min\",\"prod\",\"std\",\"sum\"]}},function(e,t){e.exports={name:\"acos\",category:\"Trigonometry\",syntax:[\"acos(x)\"],description:\"Compute the inverse cosine of a value in radians.\",examples:[\"acos(0.5)\",\"acos(cos(2.3))\"],seealso:[\"cos\",\"atan\",\"asin\"]}},function(e,t){e.exports={name:\"acosh\",category:\"Trigonometry\",syntax:[\"acosh(x)\"],description:\"Calculate the hyperbolic arccos of a value, defined as `acosh(x) = ln(sqrt(x^2 - 1) + x)`.\",examples:[\"acosh(1.5)\"],seealso:[\"cosh\",\"asinh\",\"atanh\"]}},function(e,t){e.exports={name:\"acot\",category:\"Trigonometry\",syntax:[\"acot(x)\"],description:\"Calculate the inverse cotangent of a value.\",examples:[\"acot(0.5)\",\"acot(cot(0.5))\",\"acot(2)\"],seealso:[\"cot\",\"atan\"]}},function(e,t){e.exports={name:\"acoth\",category:\"Trigonometry\",syntax:[\"acoth(x)\"],description:\"Calculate the hyperbolic arccotangent of a value, defined as `acoth(x) = (ln((x+1)/x) + ln(x/(x-1))) / 2`.\",examples:[\"acoth(0.5)\"],seealso:[\"acsch\",\"asech\"]}},function(e,t){e.exports={name:\"acsc\",category:\"Trigonometry\",syntax:[\"acsc(x)\"],description:\"Calculate the inverse cotangent of a value.\",examples:[\"acsc(0.5)\",\"acsc(csc(0.5))\",\"acsc(2)\"],seealso:[\"csc\",\"asin\",\"asec\"]}},function(e,t){e.exports={name:\"acsch\",category:\"Trigonometry\",syntax:[\"acsch(x)\"],description:\"Calculate the hyperbolic arccosecant of a value, defined as `acsch(x) = ln(1/x + sqrt(1/x^2 + 1))`.\",examples:[\"acsch(0.5)\"],seealso:[\"asech\",\"acoth\"]}},function(e,t){e.exports={name:\"asec\",category:\"Trigonometry\",syntax:[\"asec(x)\"],description:\"Calculate the inverse secant of a value.\",examples:[\"asec(0.5)\",\"asec(sec(0.5))\",\"asec(2)\"],seealso:[\"acos\",\"acot\",\"acsc\"]}},function(e,t){e.exports={name:\"asech\",category:\"Trigonometry\",syntax:[\"asech(x)\"],description:\"Calculate the inverse secant of a value.\",examples:[\"asech(0.5)\"],seealso:[\"acsch\",\"acoth\"]}},function(e,t){e.exports={name:\"asin\",category:\"Trigonometry\",syntax:[\"asin(x)\"],description:\"Compute the inverse sine of a value in radians.\",examples:[\"asin(0.5)\",\"asin(sin(2.3))\"],seealso:[\"sin\",\"acos\",\"atan\"]}},function(e,t){e.exports={name:\"asinh\",category:\"Trigonometry\",syntax:[\"asinh(x)\"],description:\"Calculate the hyperbolic arcsine of a value, defined as `asinh(x) = ln(x + sqrt(x^2 + 1))`.\",examples:[\"asinh(0.5)\"],seealso:[\"acosh\",\"atanh\"]}},function(e,t){e.exports={name:\"atan\",category:\"Trigonometry\",syntax:[\"atan(x)\"],description:\"Compute the inverse tangent of a value in radians.\",examples:[\"atan(0.5)\",\"atan(tan(2.3))\"],seealso:[\"tan\",\"acos\",\"asin\"]}},function(e,t){e.exports={name:\"atanh\",category:\"Trigonometry\",syntax:[\"atanh(x)\"],description:\"Calculate the hyperbolic arctangent of a value, defined as `atanh(x) = ln((1 + x)/(1 - x)) / 2`.\",examples:[\"atanh(0.5)\"],seealso:[\"acosh\",\"asinh\"]}},function(e,t){e.exports={name:\"atan2\",category:\"Trigonometry\",syntax:[\"atan2(y, x)\"],description:\"Computes the principal value of the arc tangent of y/x in radians.\",examples:[\"atan2(2, 2) / pi\",\"angle = 60 deg in rad\",\"x = cos(angle)\",\"y = sin(angle)\",\"atan2(y, x)\"],seealso:[\"sin\",\"cos\",\"tan\"]}},function(e,t){e.exports={name:\"cos\",category:\"Trigonometry\",syntax:[\"cos(x)\"],description:\"Compute the cosine of x in radians.\",examples:[\"cos(2)\",\"cos(pi / 4) ^ 2\",\"cos(180 deg)\",\"cos(60 deg)\",\"sin(0.2)^2 + cos(0.2)^2\"],seealso:[\"acos\",\"sin\",\"tan\"]}},function(e,t){e.exports={name:\"cosh\",category:\"Trigonometry\",syntax:[\"cosh(x)\"],description:\"Compute the hyperbolic cosine of x in radians.\",examples:[\"cosh(0.5)\"],seealso:[\"sinh\",\"tanh\",\"coth\"]}},function(e,t){e.exports={name:\"cot\",category:\"Trigonometry\",syntax:[\"cot(x)\"],description:\"Compute the cotangent of x in radians. Defined as 1/tan(x)\",examples:[\"cot(2)\",\"1 / tan(2)\"],seealso:[\"sec\",\"csc\",\"tan\"]}},function(e,t){e.exports={name:\"coth\",category:\"Trigonometry\",syntax:[\"coth(x)\"],description:\"Compute the hyperbolic cotangent of x in radians.\",examples:[\"coth(2)\",\"1 / tanh(2)\"],seealso:[\"sech\",\"csch\",\"tanh\"]}},function(e,t){e.exports={name:\"csc\",category:\"Trigonometry\",syntax:[\"csc(x)\"],description:\"Compute the cosecant of x in radians. Defined as 1/sin(x)\",examples:[\"csc(2)\",\"1 / sin(2)\"],seealso:[\"sec\",\"cot\",\"sin\"]}},function(e,t){e.exports={name:\"csch\",category:\"Trigonometry\",syntax:[\"csch(x)\"],description:\"Compute the hyperbolic cosecant of x in radians. Defined as 1/sinh(x)\",examples:[\"csch(2)\",\"1 / sinh(2)\"],seealso:[\"sech\",\"coth\",\"sinh\"]}},function(e,t){e.exports={name:\"sec\",category:\"Trigonometry\",syntax:[\"sec(x)\"],description:\"Compute the secant of x in radians. Defined as 1/cos(x)\",examples:[\"sec(2)\",\"1 / cos(2)\"],seealso:[\"cot\",\"csc\",\"cos\"]}},function(e,t){e.exports={name:\"sech\",category:\"Trigonometry\",syntax:[\"sech(x)\"],description:\"Compute the hyperbolic secant of x in radians. Defined as 1/cosh(x)\",examples:[\"sech(2)\",\"1 / cosh(2)\"],seealso:[\"coth\",\"csch\",\"cosh\"]}},function(e,t){e.exports={name:\"sin\",category:\"Trigonometry\",syntax:[\"sin(x)\"],description:\"Compute the sine of x in radians.\",examples:[\"sin(2)\",\"sin(pi / 4) ^ 2\",\"sin(90 deg)\",\"sin(30 deg)\",\"sin(0.2)^2 + cos(0.2)^2\"],seealso:[\"asin\",\"cos\",\"tan\"]}},function(e,t){e.exports={name:\"sinh\",category:\"Trigonometry\",syntax:[\"sinh(x)\"],description:\"Compute the hyperbolic sine of x in radians.\",examples:[\"sinh(0.5)\"],seealso:[\"cosh\",\"tanh\"]}},function(e,t){e.exports={name:\"tan\",category:\"Trigonometry\",syntax:[\"tan(x)\"],description:\"Compute the tangent of x in radians.\",examples:[\"tan(0.5)\",\"sin(0.5) / cos(0.5)\",\"tan(pi / 4)\",\"tan(45 deg)\"],seealso:[\"atan\",\"sin\",\"cos\"]}},function(e,t){e.exports={name:\"tanh\",category:\"Trigonometry\",syntax:[\"tanh(x)\"],description:\"Compute the hyperbolic tangent of x in radians.\",examples:[\"tanh(0.5)\",\"sinh(0.5) / cosh(0.5)\"],seealso:[\"sinh\",\"cosh\"]}},function(e,t){e.exports={name:\"to\",category:\"Units\",syntax:[\"x to unit\",\"to(x, unit)\"],description:\"Change the unit of a value.\",examples:[\"5 inch to cm\",\"3.2kg to g\",\"16 bytes in bits\"],seealso:[]}},function(e,t){e.exports={name:\"clone\",category:\"Utils\",syntax:[\"clone(x)\"],description:\"Clone a variable. Creates a copy of primitive variables,and a deep copy of matrices\",examples:[\"clone(3.5)\",\"clone(2 - 4i)\",\"clone(45 deg)\",\"clone([1, 2; 3, 4])\",'clone(\"hello world\")'],seealso:[]}},function(e,t){e.exports={name:\"map\",category:\"Utils\",syntax:[\"map(x, callback)\"],description:\"Create a new matrix or array with the results of the callback function executed on each entry of the matrix/array.\",examples:[\"map([1, 2, 3], function(val) { return value * value })\"],seealso:[\"filter\",\"forEach\"]}},function(e,t){e.exports={name:\"partitionSelect\",category:\"Utils\",syntax:[\"partitionSelect(x, k)\",\"partitionSelect(x, k, compare)\"],description:\"Partition-based selection of an array or 1D matrix. Will find the kth smallest value, and mutates the input array. Uses Quickselect.\",examples:[\"partitionSelect([5, 10, 1], 2)\",'partitionSelect([\"C\", \"B\", \"A\", \"D\"], 1)'],seealso:[\"sort\"]}},function(e,t){e.exports={name:\"filter\",category:\"Utils\",syntax:[\"filter(x, test)\"],description:\"Filter items in a matrix.\",examples:[\"isPositive(x) = x > 0\",\"filter([6, -2, -1, 4, 3], isPositive)\",\"filter([6, -2, 0, 1, 0], x != 0)\"],seealso:[\"sort\",\"map\",\"forEach\"]}},function(e,t){e.exports={name:\"forEach\",category:\"Utils\",syntax:[\"forEach(x, callback)\"],description:\"Iterates over all elements of a matrix/array, and executes the given callback function.\",examples:[\"forEach([1, 2, 3], function(val) { console.log(val) })\"],seealso:[\"map\",\"sort\",\"filter\"]}},function(e,t){e.exports={name:\"format\",category:\"Utils\",syntax:[\"format(value)\",\"format(value, precision)\"],description:\"Format a value of any type as string.\",examples:[\"format(2.3)\",\"format(3 - 4i)\",\"format([])\",\"format(pi, 3)\"],seealso:[\"print\"]}},function(e,t){e.exports={name:\"isInteger\",category:\"Utils\",syntax:[\"isInteger(x)\"],description:\"Test whether a value is an integer number.\",examples:[\"isInteger(2)\",\"isInteger(3.5)\",\"isInteger([3, 0.5, -2])\"],seealso:[\"isNegative\",\"isNumeric\",\"isPositive\",\"isZero\"]}},function(e,t){e.exports={name:\"isNegative\",category:\"Utils\",syntax:[\"isNegative(x)\"],description:\"Test whether a value is negative: smaller than zero.\",examples:[\"isNegative(2)\",\"isNegative(0)\",\"isNegative(-4)\",\"isNegative([3, 0.5, -2])\"],seealso:[\"isInteger\",\"isNumeric\",\"isPositive\",\"isZero\"]}},function(e,t){e.exports={name:\"isNumeric\",category:\"Utils\",syntax:[\"isNumeric(x)\"],description:\"Test whether a value is a numeric value. Returns true when the input is a number, BigNumber, Fraction, or boolean.\",examples:[\"isNumeric(2)\",\"isNumeric(0)\",\"isNumeric(bignumber(500))\",\"isNumeric(fraction(0.125))\",'isNumeric(\"3\")',\"isNumeric(2 + 3i)\",'isNumeric([2.3, \"foo\", false])'],seealso:[\"isInteger\",\"isZero\",\"isNegative\",\"isPositive\"]}},function(e,t){e.exports={name:\"isPositive\",category:\"Utils\",syntax:[\"isPositive(x)\"],description:\"Test whether a value is positive: larger than zero.\",examples:[\"isPositive(2)\",\"isPositive(0)\",\"isPositive(-4)\",\"isPositive([3, 0.5, -2])\"],seealso:[\"isInteger\",\"isNumeric\",\"isNegative\",\"isZero\"]}},function(e,t){e.exports={name:\"isZero\",category:\"Utils\",syntax:[\"isZero(x)\"],description:\"Test whether a value is zero.\",examples:[\"isZero(2)\",\"isZero(0)\",\"isZero(-4)\",\"isZero([3, 0, -2, 0])\"],seealso:[\"isInteger\",\"isNumeric\",\"isNegative\",\"isPositive\"]}},function(e,t){e.exports={name:\"import\",category:\"Utils\",syntax:[\"import(string)\"],description:\"Import functions from a file.\",examples:['import(\"numbers\")','import(\"./mylib.js\")'],seealso:[]}},function(e,t){e.exports={name:\"sort\",category:\"Utils\",syntax:[\"sort(x)\",\"sort(x, compare)\"],description:'Sort the items in a matrix. Compare can be a string \"asc\" or \"desc\", or a custom sort function.',examples:[\"sort([5, 10, 1])\",'sort([\"C\", \"B\", \"A\", \"D\"])',\"sortByLength(a, b) = size(a)[1] - size(b)[1]\",'sort([\"Langdon\", \"Tom\", \"Sara\"], sortByLength)'],seealso:[\"map\",\"filter\",\"forEach\"]}},function(e,t){e.exports={name:\"typeof\",category:\"Utils\",syntax:[\"typeof(x)\"],description:\"Get the type of a variable.\",examples:[\"typeof(3.5)\",\"typeof(2 - 4i)\",\"typeof(45 deg)\",'typeof(\"hello world\")'],seealso:[]}},function(e,t,r){e.exports=[r(252),r(270),r(271),r(272),r(273)]},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(253));return a(\"compile\",{string:function(e){return o(e).compile()},\"Array | Matrix\":function(e){return i(e,function(e){return o(e).compile()})}})}var i=r(19);t.name=\"compile\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(t,r){if(1!=arguments.length&&2!=arguments.length)throw new i(\"parse\",arguments.length,1,2);if(he=r&&r.nodes?r.nodes:{},\"string\"==typeof t)return ge=t,x();if(Array.isArray(t)||t instanceof e.Matrix)return a(t,function(e){if(\"string\"!=typeof e)throw new TypeError(\"String expected\");return ge=e,x()});throw new TypeError(\"String or matrix expected\")}function u(){ve=0,de=ge.charAt(0),we=0,be=null}function c(){ve++,de=ge.charAt(ve)}function f(){return ge.charAt(ve+1)}function l(){return ge.charAt(ve+2)}function p(){for(xe=le.NULL,ye=\"\";\" \"==de||\"\t\"==de||\"\\n\"==de&&we;)c();if(\"#\"==de)for(;\"\\n\"!=de&&\"\"!=de;)c();if(\"\"==de)return void(xe=le.DELIMITER);if(\"\\n\"==de&&!we)return xe=le.DELIMITER,ye=de,void c();var e=de+f(),t=e+l();if(3==t.length&&pe[t])return xe=le.DELIMITER,ye=t,c(),c(),void c();if(2==e.length&&pe[e])return xe=le.DELIMITER,ye=e,c(),void c();if(pe[de])return xe=le.DELIMITER,ye=de,void c();if(!d(de)){if(v()){for(;v()||y(de);)ye+=de,c();return void(xe=me[ye]?le.DELIMITER:le.SYMBOL)}for(xe=le.UNKNOWN;\"\"!=de;)ye+=de,c();throw X('Syntax error in part \"'+ye+'\"')}if(xe=le.NUMBER,\".\"==de)ye+=de,c(),y(de)||(xe=le.UNKNOWN);else{for(;y(de);)ye+=de,c();\".\"==de&&(ye+=de,c())}for(;y(de);)ye+=de,c();if(e=f(),(\"E\"==de||\"e\"==de)&&(y(e)||\"-\"==e||\"+\"==e))for(ye+=de,c(),(\"+\"==de||\"-\"==de)&&(ye+=de,c()),y(de)||(xe=le.UNKNOWN);y(de);)ye+=de,c()}function m(){do p();while(\"\\n\"==ye)}function h(){we++}function g(){we--}function v(){var e=ge.charAt(ve-1),t=ge.charAt(ve+1),r=function(e){return/^[a-zA-Z_\\u00C0-\\u02AF\\u0370-\\u03FF]$/.test(e)},n=function(e,t){return/^[\\uD835]$/.test(e)&&/^[\\uDC00-\\uDFFF]$/.test(t)&&/^[^\\uDC55\\uDC9D\\uDCA0\\uDCA1\\uDCA3\\uDCA4\\uDCA7\\uDCA8\\uDCAD\\uDCBA\\uDCBC\\uDCC4\\uDD06\\uDD0B\\uDD0C\\uDD15\\uDD1D\\uDD3A\\uDD3F\\uDD45\\uDD47-\\uDD49\\uDD51\\uDEA6\\uDEA7\\uDFCC\\uDFCD]$/.test(t)};return r(de)||n(de,t)||n(e,de)}function d(e){return e>=\"0\"&&\"9\">=e||\".\"==e}function y(e){return e>=\"0\"&&\"9\">=e}function x(){u(),p();var e=w();if(\"\"!=ye)throw xe==le.DELIMITER?J(\"Unexpected operator \"+ye):X('Unexpected part \"'+ye+'\"');return e}function w(){var e,t,r=[];if(\"\"==ye)return new re(\"undefined\",\"undefined\");for(\"\\n\"!=ye&&\";\"!=ye&&(e=b());\"\\n\"==ye||\";\"==ye;)0==r.length&&e&&(t=\";\"!=ye,r.push({node:e,visible:t})),p(),\"\\n\"!=ye&&\";\"!=ye&&\"\"!=ye&&(e=b(),t=\";\"!=ye,r.push({node:e,visible:t}));return r.length>0?new ee(r):e}function b(){if(xe==le.SYMBOL&&\"function\"==ye)throw X('Deprecated keyword \"function\". Functions can now be assigned without it, like \"f(x) = x^2\".');return N()}function N(){var e,t,r,n,i=E();if(\"=\"==ye){if(i&&i.isSymbolNode)return e=i.name,m(),r=N(),new Q(e,r);if(i&&i.isIndexNode)return m(),r=N(),new fe(i,r);if(i&&i.isFunctionNode&&(n=!0,t=[],e=i.name,i.args.forEach(function(e,r){e&&e.isSymbolNode?t[r]=e.name:n=!1}),n))return m(),r=N(),new ne(e,t,r);throw X(\"Invalid left hand side of assignment operator =\")}return i}function E(){for(var e=M();\"?\"==ye;){var t=be;be=we,m();var r=e,n=M();if(\":\"!=ye)throw X(\"False part of conditional expression expected\");be=null,m();var i=E();e=new te(r,n,i),be=t}return e}function M(){for(var e=A();\"or\"==ye;)m(),e=new ae(\"or\",\"or\",[e,A()]);return e}function A(){for(var e=_();\"xor\"==ye;)m(),e=new ae(\"xor\",\"xor\",[e,_()]);return e}function _(){for(var e=O();\"and\"==ye;)m(),e=new ae(\"and\",\"and\",[e,O()]);return e}function O(){for(var e=T();\"|\"==ye;)m(),e=new ae(\"|\",\"bitOr\",[e,T()]);return e}function T(){for(var e=C();\"^|\"==ye;)m(),e=new ae(\"^|\",\"bitXor\",[e,C()]);return e}function C(){for(var e=S();\"&\"==ye;)m(),e=new ae(\"&\",\"bitAnd\",[e,S()]);return e}function S(){var e,t,r,n,i;for(e=z(),t={\"==\":\"equal\",\"!=\":\"unequal\",\"<\":\"smaller\",\">\":\"larger\",\"<=\":\"smallerEq\",\">=\":\"largerEq\"};ye in t;)r=ye,n=t[r],m(),i=[e,z()],e=new ae(r,n,i);return e}function z(){var e,t,r,n,i;for(e=B(),t={\"<<\":\"leftShift\",\">>\":\"rightArithShift\",\">>>\":\"rightLogShift\"};ye in t;)r=ye,n=t[r],m(),i=[e,B()],e=new ae(r,n,i);return e}function B(){var e,t,r,n,i;for(e=k(),t={to:\"to\",\"in\":\"to\"};ye in t;)r=ye,n=t[r],m(),i=[e,k()],e=new ae(r,n,i);return e}function k(){var e,t=[];if(e=\":\"==ye?new re(\"1\",\"number\"):I(),\":\"==ye&&be!==we){for(t.push(e);\":\"==ye&&t.length<3;)m(),\")\"==ye||\"]\"==ye||\",\"==ye||\"\"==ye?t.push(new ce(\"end\")):t.push(I());e=3==t.length?new ue(t[0],t[2],t[1]):new ue(t[0],t[1])}return e}function I(){var e,t,r,n,i;for(e=R(),t={\"+\":\"add\",\"-\":\"subtract\"};ye in t;)r=ye,n=t[r],m(),i=[e,R()],e=new ae(r,n,i);return e}function R(){var e,t,r,n,i;for(e=P(),t=e,r={\"*\":\"multiply\",\".*\":\"dotMultiply\",\"/\":\"divide\",\"./\":\"dotDivide\",\"%\":\"mod\",mod:\"mod\"};;)if(ye in r)n=ye,i=r[n],m(),t=P(),e=new ae(n,i,[e,t]);else{if(!(xe==le.SYMBOL||\"in\"==ye&&e&&e.isConstantNode||xe==le.NUMBER&&!t.isConstantNode||\"(\"==ye||\"[\"==ye))break;t=P(),e=new ae(\"*\",\"multiply\",[e,t])}return e}function P(){var e,t,r={\"-\":\"unaryMinus\",\"+\":\"unaryPlus\",\"~\":\"bitNot\",not:\"not\"}[ye];return r?(e=ye,m(),t=[P()],new ae(e,r,t)):U()}function U(){var e,t,r,n;return e=q(),(\"^\"==ye||\".^\"==ye)&&(t=ye,r=\"^\"==t?\"pow\":\"dotPow\",m(),n=[e,P()],e=new ae(t,r,n)),e}function q(){var e,t,r,n,i;for(e=L(),t={\"!\":\"factorial\",\"'\":\"transpose\"};ye in t;)r=ye,n=t[r],p(),i=[e],e=new ae(r,n,i);return e}function L(){var e,t=[];if(xe==le.SYMBOL&&he[ye]){if(e=he[ye],p(),\"(\"==ye){if(t=[],h(),p(),\")\"!=ye)for(t.push(E());\",\"==ye;)p(),t.push(E());if(\")\"!=ye)throw X(\"Parenthesis ) expected\");g(),p()}return new e(t)}return F()}function F(){var e,t;return xe==le.SYMBOL||xe==le.DELIMITER&&ye in me?(t=ye,p(),e=D(t),e=$(e)):j()}function D(e){var t;if(\"(\"==ye){if(t=[],h(),p(),\")\"!=ye)for(t.push(E());\",\"==ye;)p(),t.push(E());if(\")\"!=ye)throw X(\"Parenthesis ) expected\");return g(),p(),new se(e,t)}return new ce(e)}function $(e){for(var t;\"[\"==ye;){if(t=[],h(),p(),\"]\"!=ye)for(t.push(E());\",\"==ye;)p(),t.push(E());if(\"]\"!=ye)throw X(\"Parenthesis ] expected\");g(),p(),e=new ie(e,t)}return e}function j(){var e,t,r;if('\"'==ye){for(t=\"\",r=\"\";\"\"!=de&&('\"'!=de||\"\\\\\"==r);)t+=de,r=de,c();if(p(),'\"'!=ye)throw X('End of string \" expected');return p(),e=new re(t,\"string\"),e=$(e)}return G()}function G(){var e,t,r,n;if(\"[\"==ye){if(h(),p(),\"]\"!=ye){var i=H();if(\";\"==ye){for(r=1,t=[i];\";\"==ye;)p(),t[r]=H(),r++;if(\"]\"!=ye)throw X(\"End of matrix ] expected\");g(),p(),n=t[0].nodes.length;for(var a=1;r>a;a++)if(t[a].nodes.length!=n)throw J(\"Column dimensions mismatch (\"+t[a].nodes.length+\" != \"+n+\")\");e=new K(t)}else{if(\"]\"!=ye)throw X(\"End of matrix ] expected\");g(),p(),e=i}}else g(),p(),e=new K([]);return e}return Z()}function H(){for(var e=[N()],t=1;\",\"==ye;)p(),e[t]=N(),t++;return new K(e)}function Z(){var e;return xe==le.NUMBER?(e=ye,p(),new re(e,\"number\")):V()}function V(){var e;if(\"(\"==ye){if(h(),p(),e=N(),\")\"!=ye)throw X(\"Parenthesis ) expected\");return g(),p(),new oe(e)}return Y()}function Y(){throw X(\"\"==ye?\"Unexpected end of expression\":\"Value expected\")}function W(){return ve-ye.length+1}function X(e){var t=W(),r=new SyntaxError(e+\" (char \"+t+\")\");return r[\"char\"]=t,r}function J(e){var t=W(),r=new Error(e+\" (char \"+t+\")\");return r[\"char\"]=t,r}var K=n(r(254)),Q=n(r(257)),ee=n(r(259)),te=n(r(260)),re=n(r(261)),ne=n(r(262)),ie=n(r(263)),ae=n(r(266)),oe=n(r(268)),se=n(r(267)),ue=n(r(264)),ce=n(r(265)),fe=n(r(269)),le={NULL:0,DELIMITER:1,NUMBER:2,SYMBOL:3,UNKNOWN:4},pe={\",\":!0,\"(\":!0,\")\":!0,\"[\":!0,\"]\":!0,'\"':!0,\";\":!0,\"+\":!0,\"-\":!0,\"*\":!0,\".*\":!0,\"/\":!0,\"./\":!0,\"%\":!0,\"^\":!0,\".^\":!0,\"~\":!0,\"!\":!0,\"&\":!0,\"|\":!0,\"^|\":!0,\"'\":!0,\"=\":!0,\":\":!0,\"?\":!0,\"==\":!0,\"!=\":!0,\"<\":!0,\">\":!0,\"<=\":!0,\">=\":!0,\"<<\":!0,\">>\":!0,\">>>\":!0},me={mod:!0,to:!0,\"in\":!0,and:!0,xor:!0,or:!0,not:!0},he={},ge=\"\",ve=0,de=\"\",ye=\"\",xe=le.NULL,we=0,be=null;return s}var i=r(11),a=r(19);t.name=\"parse\",t.path=\"expression\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e){if(!(this instanceof o))throw new SyntaxError(\"Constructor must be called with the new operator\");if(this.nodes=e||[],!Array.isArray(this.nodes)||!this.nodes.every(function(e){return e&&e.isNode}))throw new TypeError(\"Array containing Nodes expected\")}var s=n(r(255));return o.prototype=new s,o.prototype.type=\"ArrayNode\",o.prototype.isArrayNode=!0,o.prototype._compile=function(e){var t=\"array\"!==e.math.config().matrix,r=this.nodes.map(function(t){return t._compile(e)});return(t?\"math.matrix([\":\"[\")+r.join(\",\")+(t?\"])\":\"]\")},o.prototype.forEach=function(e){for(var t=0;t<this.nodes.length;t++){var r=this.nodes[t];e(r,\"nodes[\"+t+\"]\",this)}},o.prototype.map=function(e){for(var t=[],r=0;r<this.nodes.length;r++)t[r]=this._ifNode(e(this.nodes[r],\"nodes[\"+r+\"]\",this));return new o(t)},o.prototype.clone=function(){return new o(this.nodes.slice(0))},o.prototype._toString=function(e){return i.format(this.nodes)},o.prototype._toTex=function(e){var t=\"\\\\begin{bmatrix}\";return this.nodes.forEach(function(r){t+=r.nodes?r.nodes.map(function(t){return t.toTex(e)}).join(\"&\"):r.toTex(e),t+=\"\\\\\\\\\"}),t+=\"\\\\end{bmatrix}\"},o}var i=r(23);t.name=\"ArrayNode\",t.path=\"expression.node\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n,a){function o(){if(!(this instanceof o))throw new SyntaxError(\"Constructor must be called with the new operator\")}function s(e){for(var t in e)if(e.hasOwnProperty(t)&&t in i)throw new Error('Scope contains an illegal symbol, \"'+t+'\" is a reserved keyword')}return o.prototype.eval=function(e){return this.compile().eval(e)},o.prototype.type=\"Node\",o.prototype.isNode=!0,o.prototype.compile=function(){if(arguments.length>0)throw new Error(\"Calling compile(math) is deprecated. Call the function as compile() instead.\");var e={math:a.expression.transform,args:{},_validateScope:s},t=this._compile(e),r=Object.keys(e).map(function(e){return\" var \"+e+' = defs[\"'+e+'\"];'}),n=r.join(\" \")+'return { \"eval\": function (scope) { if (scope) _validateScope(scope); scope = scope || {}; return '+t+\"; }};\",i=new Function(\"defs\",n);return i(e)},o.prototype._compile=function(e){throw new Error(\"Cannot compile a Node interface\")},o.prototype.forEach=function(e){throw new Error(\"Cannot run forEach on a Node interface\")},o.prototype.map=function(e){throw new Error(\"Cannot run map on a Node interface\")},o.prototype._ifNode=function(e){if(!e||!e.isNode)throw new TypeError(\"Callback function must return a Node\");return e},o.prototype.traverse=function(e){function t(e,r){e.forEach(function(e,n,i){r(e,n,i),t(e,r)})}e(this,null,null),t(this,e)},o.prototype.transform=function(e){function t(e,r){return e.map(function(e,n,i){var a=r(e,n,i);return t(a,r)})}var r=e(this,null,null);return t(r,e)},o.prototype.filter=function(e){var t=[];return this.traverse(function(r,n,i){e(r,n,i)&&t.push(r)}),t},o.prototype.find=function(){throw new Error(\"Function Node.find is deprecated. Use Node.filter instead.\")},o.prototype.match=function(){throw new Error(\"Function Node.match is deprecated. See functions Node.filter, Node.transform, Node.traverse.\")},o.prototype.clone=function(){throw new Error(\"Cannot clone a Node interface\")},o.prototype.toString=function(e){var t;if(e&&\"object\"==typeof e)switch(typeof e.handler){case\"object\":case\"undefined\":break;case\"function\":t=e.handler(this,e);break;default:throw new TypeError(\"Object or function expected as callback\")}return\"undefined\"!=typeof t?t:this._toString(e)},o.prototype._toString=function(){\nthrow new Error(\"_toString not implemented for \"+this.type)},o.prototype.toTex=function(e){var t;if(e&&\"object\"==typeof e)switch(typeof e.handler){case\"object\":case\"undefined\":break;case\"function\":t=e.handler(this,e);break;default:throw new TypeError(\"Object or function expected as callback\")}return\"undefined\"!=typeof t?t:this._toTex(e)},o.prototype._toTex=function(e){throw new Error(\"_toTex not implemented for \"+this.type)},o.prototype.getIdentifier=function(){return this.type},o.prototype.getContent=function(){return this},o}var i=r(256);r(3).extend;t.name=\"Node\",t.path=\"expression.node\",t.math=!0,t.factory=n},function(e,t){\"use strict\";e.exports={end:!0}},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e,t){if(!(this instanceof o))throw new SyntaxError(\"Constructor must be called with the new operator\");if(\"string\"!=typeof e)throw new TypeError('String expected for parameter \"name\"');if(!t||!t.isNode)throw new TypeError('Node expected for parameter \"expr\"');if(e in c)throw new Error('Illegal symbol name, \"'+e+'\" is a reserved keyword');this.name=e,this.expr=t}function s(e,t){var r=f.getPrecedence(e,t),n=f.getPrecedence(e.expr,t);return\"all\"===t||null!==n&&r>=n}var u=n(r(255)),c=(n(r(254)),r(256)),f=r(258);return o.prototype=new u,o.prototype.type=\"AssignmentNode\",o.prototype.isAssignmentNode=!0,o.prototype._compile=function(e){return'scope[\"'+this.name+'\"] = '+this.expr._compile(e)},o.prototype.forEach=function(e){e(this.expr,\"expr\",this)},o.prototype.map=function(e){return new o(this.name,this._ifNode(e(this.expr,\"expr\",this)))},o.prototype.clone=function(){return new o(this.name,this.expr)},o.prototype._toString=function(e){var t=e&&e.parenthesis?e.parenthesis:\"keep\",r=this.expr.toString(e);return s(this,t)&&(r=\"(\"+r+\")\"),this.name+\" = \"+r},o.prototype._toTex=function(e){var t=e&&e.parenthesis?e.parenthesis:\"keep\",r=this.expr.toTex(e);return s(this,t)&&(r=\"\\\\left(\"+r+\"\\\\right)\"),i.toSymbol(this.name)+\":=\"+r},o}var i=r(30);t.name=\"AssignmentNode\",t.path=\"expression.node\",t.factory=n},function(e,t){\"use strict\";function r(e,t){var r=e;\"keep\"!==t&&(r=e.getContent());for(var n=r.getIdentifier(),i=0;i<a.length;i++)if(n in a[i])return i;return null}function n(e,t){var n=e;\"keep\"!==t&&(n=e.getContent());var i=n.getIdentifier(),o=r(n,t);if(null===o)return null;var s=a[o][i];if(s.hasOwnProperty(\"associativity\")){if(\"left\"===s.associativity)return\"left\";if(\"right\"===s.associativity)return\"right\";throw Error(\"'\"+i+\"' has the invalid associativity '\"+s.associativity+\"'.\")}return null}function i(e,t,n){var i=e,o=t;if(\"keep\"!==n)var i=e.getContent(),o=t.getContent();var s=i.getIdentifier(),u=o.getIdentifier(),c=r(i,n);if(null===c)return null;var f=a[c][s];if(f.hasOwnProperty(\"associativeWith\")&&f.associativeWith instanceof Array){for(var l=0;l<f.associativeWith.length;l++)if(f.associativeWith[l]===u)return!0;return!1}return null}var a=[{AssignmentNode:{},FunctionAssignmentNode:{}},{ConditionalNode:{latexLeftParens:!1,latexRightParens:!1,latexParens:!1}},{\"OperatorNode:or\":{associativity:\"left\",associativeWith:[]}},{\"OperatorNode:xor\":{associativity:\"left\",associativeWith:[]}},{\"OperatorNode:and\":{associativity:\"left\",associativeWith:[]}},{\"OperatorNode:bitOr\":{associativity:\"left\",associativeWith:[]}},{\"OperatorNode:bitXor\":{associativity:\"left\",associativeWith:[]}},{\"OperatorNode:bitAnd\":{associativity:\"left\",associativeWith:[]}},{\"OperatorNode:equal\":{associativity:\"left\",associativeWith:[]},\"OperatorNode:unequal\":{associativity:\"left\",associativeWith:[]},\"OperatorNode:smaller\":{associativity:\"left\",associativeWith:[]},\"OperatorNode:larger\":{associativity:\"left\",associativeWith:[]},\"OperatorNode:smallerEq\":{associativity:\"left\",associativeWith:[]},\"OperatorNode:largerEq\":{associativity:\"left\",associativeWith:[]}},{\"OperatorNode:leftShift\":{associativity:\"left\",associativeWith:[]},\"OperatorNode:rightArithShift\":{associativity:\"left\",associativeWith:[]},\"OperatorNode:rightLogShift\":{associativity:\"left\",associativeWith:[]}},{\"OperatorNode:to\":{associativity:\"left\",associativeWith:[]}},{RangeNode:{}},{\"OperatorNode:add\":{associativity:\"left\",associativeWith:[\"OperatorNode:add\",\"OperatorNode:subtract\"]},\"OperatorNode:subtract\":{associativity:\"left\",associativeWith:[]}},{\"OperatorNode:multiply\":{associativity:\"left\",associativeWith:[\"OperatorNode:multiply\",\"OperatorNode:divide\",\"Operator:dotMultiply\",\"Operator:dotDivide\"]},\"OperatorNode:divide\":{associativity:\"left\",associativeWith:[],latexLeftParens:!1,latexRightParens:!1,latexParens:!1},\"OperatorNode:dotMultiply\":{associativity:\"left\",associativeWith:[\"OperatorNode:multiply\",\"OperatorNode:divide\",\"OperatorNode:dotMultiply\",\"OperatorNode:doDivide\"]},\"OperatorNode:dotDivide\":{associativity:\"left\",associativeWith:[]},\"OperatorNode:mod\":{associativity:\"left\",associativeWith:[]}},{\"OperatorNode:unaryPlus\":{associativity:\"right\"},\"OperatorNode:unaryMinus\":{associativity:\"right\"},\"OperatorNode:bitNot\":{associativity:\"right\"},\"OperatorNode:not\":{associativity:\"right\"}},{\"OperatorNode:pow\":{associativity:\"right\",associativeWith:[],latexRightParens:!1},\"OperatorNode:dotPow\":{associativity:\"right\",associativeWith:[]}},{\"OperatorNode:factorial\":{associativity:\"left\"}},{\"OperatorNode:transpose\":{associativity:\"left\"}}];e.exports.properties=a,e.exports.getPrecedence=r,e.exports.getAssociativity=n,e.exports.isAssociativeWith=i},function(e,t,r){\"use strict\";function n(e,t,n,i){function a(e){if(!(this instanceof a))throw new SyntaxError(\"Constructor must be called with the new operator\");if(!Array.isArray(e))throw new Error(\"Array expected\");this.blocks=e.map(function(e){var t=e&&e.node,r=e&&void 0!==e.visible?e.visible:!0;if(!t||!t.isNode)throw new TypeError('Property \"node\" must be a Node');if(\"boolean\"!=typeof r)throw new TypeError('Property \"visible\" must be a boolean');return{node:t,visible:r}})}var o=n(r(255)),s=n(r(71));return a.prototype=new o,a.prototype.type=\"BlockNode\",a.prototype.isBlockNode=!0,a.prototype._compile=function(e){e.ResultSet=s;var t=this.blocks.map(function(t){var r=t.node._compile(e);return t.visible?\"results.push(\"+r+\");\":r+\";\"});return\"(function () {var results = [];\"+t.join(\"\")+\"return new ResultSet(results);})()\"},a.prototype.forEach=function(e){for(var t=0;t<this.blocks.length;t++)e(this.blocks[t].node,\"blocks[\"+t+\"].node\",this)},a.prototype.map=function(e){for(var t=[],r=0;r<this.blocks.length;r++){var n=this.blocks[r],i=this._ifNode(e(n.node,\"blocks[\"+r+\"].node\",this));t[r]={node:i,visible:n.visible}}return new a(t)},a.prototype.clone=function(){var e=this.blocks.map(function(e){return{node:e.node,visible:e.visible}});return new a(e)},a.prototype._toString=function(e){return this.blocks.map(function(t){return t.node.toString(e)+(t.visible?\"\":\";\")}).join(\"\\n\")},a.prototype._toTex=function(e){return this.blocks.map(function(t){return t.node.toTex(e)+(t.visible?\"\":\";\")}).join(\"\\\\;\\\\;\\n\")},a}t.name=\"BlockNode\",t.path=\"expression.node\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e,t,r){if(!(this instanceof o))throw new SyntaxError(\"Constructor must be called with the new operator\");if(!e||!e.isNode)throw new TypeError(\"Parameter condition must be a Node\");if(!t||!t.isNode)throw new TypeError(\"Parameter trueExpr must be a Node\");if(!r||!r.isNode)throw new TypeError(\"Parameter falseExpr must be a Node\");this.condition=e,this.trueExpr=t,this.falseExpr=r}var s=n(r(255));return o.prototype=new s,o.prototype.type=\"ConditionalNode\",o.prototype.isConditionalNode=!0,o.prototype._compile=function(e){return e.testCondition=function(t){if(\"number\"==typeof t||\"boolean\"==typeof t||\"string\"==typeof t)return t?!0:!1;if(t){if(t.isBigNumber===!0)return t.isZero()?!1:!0;if(t.isComplex===!0)return t.re||t.im?!0:!1;if(t.isUnit===!0)return t.value?!0:!1}if(null===t||void 0===t)return!1;throw new TypeError('Unsupported type of condition \"'+e.math[\"typeof\"](t)+'\"')},\"testCondition(\"+this.condition._compile(e)+\") ? ( \"+this.trueExpr._compile(e)+\") : ( \"+this.falseExpr._compile(e)+\")\"},o.prototype.forEach=function(e){e(this.condition,\"condition\",this),e(this.trueExpr,\"trueExpr\",this),e(this.falseExpr,\"falseExpr\",this)},o.prototype.map=function(e){return new o(this._ifNode(e(this.condition,\"condition\",this)),this._ifNode(e(this.trueExpr,\"trueExpr\",this)),this._ifNode(e(this.falseExpr,\"falseExpr\",this)))},o.prototype.clone=function(){return new o(this.condition,this.trueExpr,this.falseExpr)},o.prototype._toString=function(e){var t=e&&e.parenthesis?e.parenthesis:\"keep\",r=i.getPrecedence(this,t),n=this.condition.toString(e),a=i.getPrecedence(this.condition,t);(\"all\"===t||\"OperatorNode\"===this.condition.type||null!==a&&r>=a)&&(n=\"(\"+n+\")\");var o=this.trueExpr.toString(e),s=i.getPrecedence(this.trueExpr,t);(\"all\"===t||\"OperatorNode\"===this.trueExpr.type||null!==s&&r>=s)&&(o=\"(\"+o+\")\");var u=this.falseExpr.toString(e),c=i.getPrecedence(this.falseExpr,t);return(\"all\"===t||\"OperatorNode\"===this.falseExpr.type||null!==c&&r>=c)&&(u=\"(\"+u+\")\"),n+\" ? \"+o+\" : \"+u},o.prototype._toTex=function(e){return\"\\\\left\\\\{\\\\begin{array}{l l}{\"+this.trueExpr.toTex(e)+\"}, &\\\\quad{\\\\text{if}\\\\;\"+this.condition.toTex(e)+\"}\\\\\\\\{\"+this.falseExpr.toTex(e)+\"}, &\\\\quad{\\\\text{otherwise}}\\\\end{array}\\\\right.\"},o}var i=(r(30),r(258));t.name=\"ConditionalNode\",t.path=\"expression.node\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e,t){if(!(this instanceof o))throw new SyntaxError(\"Constructor must be called with the new operator\");if(t){if(\"string\"!=typeof t)throw new TypeError('String expected for parameter \"valueType\"');if(\"string\"!=typeof e)throw new TypeError('String expected for parameter \"value\"');this.value=e,this.valueType=t}else this.value=e+\"\",this.valueType=i(e);if(!u[this.valueType])throw new TypeError('Unsupported type of value \"'+this.valueType+'\"')}var s=n(r(255)),u={number:!0,string:!0,\"boolean\":!0,undefined:!0,\"null\":!0};return o.prototype=new s,o.prototype.type=\"ConstantNode\",o.prototype.isConstantNode=!0,o.prototype._compile=function(e){switch(this.valueType){case\"number\":var t=e.math.config().number;return\"bignumber\"===t?'math.bignumber(\"'+this.value+'\")':\"fraction\"===t?'math.fraction(\"'+this.value+'\")':this.value.replace(/^(0*)[0-9]/,function(e,t){return e.substring(t.length)});case\"string\":return'\"'+this.value+'\"';case\"boolean\":return this.value;case\"undefined\":return this.value;case\"null\":return this.value;default:throw new TypeError('Unsupported type of constant \"'+this.valueType+'\"')}},o.prototype.forEach=function(e){},o.prototype.map=function(e){return this.clone()},o.prototype.clone=function(){return new o(this.value,this.valueType)},o.prototype._toString=function(e){switch(this.valueType){case\"string\":return'\"'+this.value+'\"';default:return this.value}},o.prototype._toTex=function(e){var t,r=this.value;switch(this.valueType){case\"string\":return'\\\\mathtt{\"'+r+'\"}';case\"number\":return t=r.toLowerCase().indexOf(\"e\"),-1!==t?r.substring(0,t)+\"\\\\cdot10^{\"+r.substring(t+1)+\"}\":r;default:return r}},o}var i=r(41).type;t.name=\"ConstantNode\",t.path=\"expression.node\",t.factory=n},function(e,t,r){\"use strict\";function n(e){return\"string\"==typeof e}function i(e,t,i,u){function c(e,t,r){if(!(this instanceof c))throw new SyntaxError(\"Constructor must be called with the new operator\");if(\"string\"!=typeof e)throw new TypeError('String expected for parameter \"name\"');if(!Array.isArray(t)||!t.every(n))throw new TypeError('Array containing strings expected for parameter \"params\"');if(!r||!r.isNode)throw new TypeError('Node expected for parameter \"expr\"');if(e in a)throw new Error('Illegal function name, \"'+e+'\" is a reserved keyword');this.name=e,this.params=t,this.expr=r}function f(e,t){var r=s.getPrecedence(e,t),n=s.getPrecedence(e.expr,t);return\"all\"===t||null!==n&&r>=n}var l=i(r(255));return c.prototype=new l,c.prototype.type=\"FunctionAssignmentNode\",c.prototype.isFunctionAssignmentNode=!0,c.prototype._compile=function(e){return this.params.forEach(function(t){e.args[t]=!0}),'scope[\"'+this.name+'\"] = (function () { var fn = function '+this.name+\"(\"+this.params.join(\",\")+\") { if (arguments.length != \"+this.params.length+') { throw new SyntaxError(\"Wrong number of arguments in function '+this.name+' (\" + arguments.length + \" provided, '+this.params.length+' expected)\"); } return '+this.expr._compile(e)+' }; fn.syntax = \"'+this.name+\"(\"+this.params.join(\", \")+')\"; return fn; })()'},c.prototype.forEach=function(e){e(this.expr,\"expr\",this)},c.prototype.map=function(e){var t=this._ifNode(e(this.expr,\"expr\",this));return new c(this.name,this.params.slice(0),t)},c.prototype.clone=function(){return new c(this.name,this.params.slice(0),this.expr)},c.prototype._toString=function(e){var t=e&&e.parenthesis?e.parenthesis:\"keep\",r=this.expr.toString(e);return f(this,t)&&(r=\"(\"+r+\")\"),\"function \"+this.name+\"(\"+this.params.join(\", \")+\") = \"+r},c.prototype._toTex=function(e){var t=e&&e.parenthesis?e.parenthesis:\"keep\",r=this.expr.toTex(e);return f(this,t)&&(r=\"\\\\left(\"+r+\"\\\\right)\"),\"\\\\mathrm{\"+this.name+\"}\\\\left(\"+this.params.map(o.toSymbol).join(\",\")+\"\\\\right):=\"+r},c}var a=r(256),o=r(30),s=r(258);t.name=\"FunctionAssignmentNode\",t.path=\"expression.node\",t.factory=i},function(e,t,r){\"use strict\";function n(e,t,n,i){function a(e,t){if(!(this instanceof a))throw new SyntaxError(\"Constructor must be called with the new operator\");if(!e||!e.isNode)throw new TypeError('Node expected for parameter \"object\"');if(!c(t)||!t.every(function(e){return e&&e.isNode}))throw new TypeError('Array containing Nodes expected for parameter \"ranges\"');this.object=e,this.ranges=t}function o(e){switch(e.object.type){case\"ArrayNode\":case\"ConstantNode\":case\"SymbolNode\":case\"ParenthesisNode\":return!1;default:return!0}}var s=n(r(255)),u=(n(r(264)),n(r(265)),n(r(66))),c=Array.isArray;return a.prototype=new s,a.prototype.type=\"IndexNode\",a.prototype.isIndexNode=!0,a.prototype._compile=function(e){return this.compileSubset(e)},a.prototype.compileSubset=function(e,t){function r(e){return e&&e.isSymbolNode&&\"end\"==e.name}var n=!1,i=this.ranges.map(function(e){var t=e.filter(r).length>0;return n=t?t:n,t});e.range=function(e,t,r){return new u(e&&e.isBigNumber===!0?e.toNumber():e,t&&t.isBigNumber===!0?t.toNumber():t,r&&r.isBigNumber===!0?r.toNumber():r)};var a=this.ranges.map(function(t,r){var n=i[r];return t&&t.isRangeNode?n?(e.args.end=!0,\"(function () { var end = size[\"+r+\"]; return range( \"+t.start._compile(e)+\", \"+t.end._compile(e)+\", \"+(t.step?t.step._compile(e):\"1\")+\" );})()\"):\"range(\"+t.start._compile(e)+\", \"+t.end._compile(e)+\", \"+(t.step?t.step._compile(e):\"1\")+\")\":n?(e.args.end=!0,\"(function () { var end = size[\"+r+\"]; return \"+t._compile(e)+\";})()\"):t._compile(e)});return n?\"(function () { var obj = \"+this.object._compile(e)+\"; var size = math.size(obj).valueOf(); return math.subset( obj, math.index(\"+a.join(\", \")+\") \"+(t?\", \"+t:\"\")+\" );})()\":\"math.subset(\"+this.object._compile(e)+\",math.index(\"+a.join(\", \")+\")\"+(t?\", \"+t:\"\")+\")\"},a.prototype.forEach=function(e){e(this.object,\"object\",this);for(var t=0;t<this.ranges.length;t++)e(this.ranges[t],\"ranges[\"+t+\"]\",this)},a.prototype.map=function(e){for(var t=this._ifNode(e(this.object,\"object\",this)),r=[],n=0;n<this.ranges.length;n++)r[n]=this._ifNode(e(this.ranges[n],\"ranges[\"+n+\"]\",this));return new a(t,r)},a.prototype.objectName=function(){return this.object.name},a.prototype.clone=function(){return new a(this.object,this.ranges.slice(0))},a.prototype._toString=function(e){var t=this.object.toString(e);return o(this)&&(t=\"(\"+t+\"(\"),t+\"[\"+this.ranges.join(\", \")+\"]\"},a.prototype._toTex=function(e){var t=this.object.toTex(e);o(this)&&(t=\"\\\\left(\"+t+\"\\\\right)\");var r=this.ranges.map(function(t){return t.toTex(e)});return t+\"_{\"+r.join(\",\")+\"}\"},a}t.name=\"IndexNode\",t.path=\"expression.node\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e,t,r){if(!(this instanceof o))throw new SyntaxError(\"Constructor must be called with the new operator\");if(!e||!e.isNode)throw new TypeError(\"Node expected\");if(!t||!t.isNode)throw new TypeError(\"Node expected\");if(r&&(!r||!r.isNode))throw new TypeError(\"Node expected\");if(arguments.length>3)throw new Error(\"Too many arguments\");this.start=e,this.end=t,this.step=r||null}function s(e,t){var r=i.getPrecedence(e,t),n={},a=i.getPrecedence(e.start,t);if(n.start=null!==a&&r>=a||\"all\"===t,e.step){var o=i.getPrecedence(e.step,t);n.step=null!==o&&r>=o||\"all\"===t}var s=i.getPrecedence(e.end,t);return n.end=null!==s&&r>=s||\"all\"===t,n}var u=n(r(255));return o.prototype=new u,o.prototype.type=\"RangeNode\",o.prototype.isRangeNode=!0,o.prototype._compile=function(e){return\"math.range(\"+this.start._compile(e)+\", \"+this.end._compile(e)+(this.step?\", \"+this.step._compile(e):\"\")+\")\"},o.prototype.forEach=function(e){e(this.start,\"start\",this),e(this.end,\"end\",this),this.step&&e(this.step,\"step\",this)},o.prototype.map=function(e){return new o(this._ifNode(e(this.start,\"start\",this)),this._ifNode(e(this.end,\"end\",this)),this.step&&this._ifNode(e(this.step,\"step\",this)))},o.prototype.clone=function(){return new o(this.start,this.end,this.step&&this.step)},o.prototype._toString=function(e){var t,r=e&&e.parenthesis?e.parenthesis:\"keep\",n=s(this,r),i=this.start.toString(e);if(n.start&&(i=\"(\"+i+\")\"),t=i,this.step){var a=this.step.toString(e);n.step&&(a=\"(\"+a+\")\"),t+=\":\"+a}var o=this.end.toString(e);return n.end&&(o=\"(\"+o+\")\"),t+=\":\"+o},o.prototype._toTex=function(e){var t=e&&e.parenthesis?e.parenthesis:\"keep\",r=s(this,t),n=this.start.toTex(e);if(r.start&&(n=\"\\\\left(\"+n+\"\\\\right)\"),this.step){var i=this.step.toTex(e);r.step&&(i=\"\\\\left(\"+i+\"\\\\right)\"),n+=\":\"+i}var a=this.end.toTex(e);return r.end&&(a=\"\\\\left(\"+a+\"\\\\right)\"),n+=\":\"+a},o}var i=r(258);t.name=\"RangeNode\",t.path=\"expression.node\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a,o){function s(e){if(!(this instanceof s))throw new SyntaxError(\"Constructor must be called with the new operator\");if(\"string\"!=typeof e)throw new TypeError('String expected for parameter \"name\"');this.name=e}function u(e){throw new Error(\"Undefined symbol \"+e)}var c=n(r(255)),f=n(r(28));return s.prototype=new c,s.prototype.type=\"SymbolNode\",s.prototype.isSymbolNode=!0,s.prototype._compile=function(e){return e.undef=u,e.Unit=f,this.name in e.args?this.name:this.name in e.math?'(\"'+this.name+'\" in scope ? scope[\"'+this.name+'\"] : math[\"'+this.name+'\"])':'(\"'+this.name+'\" in scope ? scope[\"'+this.name+'\"] : '+(f.isValuelessUnit(this.name)?'new Unit(null, \"'+this.name+'\")':'undef(\"'+this.name+'\")')+\")\"},s.prototype.forEach=function(e){},s.prototype.map=function(e){return this.clone()},s.prototype.clone=function(){return new s(this.name)},s.prototype._toString=function(e){return this.name},s.prototype._toTex=function(e){var t=!1;\"undefined\"==typeof o[this.name]&&f.isValuelessUnit(this.name)&&(t=!0);var r=i.toSymbol(this.name,t);return\"\\\\\"===r[0]?r:\" \"+r},s}var i=r(30);t.name=\"SymbolNode\",t.path=\"expression.node\",t.math=!0,t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o,s){function u(e,t,r){if(!(this instanceof u))throw new SyntaxError(\"Constructor must be called with the new operator\");if(\"string\"!=typeof e)throw new TypeError('string expected for parameter \"op\"');if(\"string\"!=typeof t)throw new TypeError('string expected for parameter \"fn\"');if(!Array.isArray(r)||!r.every(function(e){return e&&e.isNode}))throw new TypeError('Array containing Nodes expected for parameter \"args\"');this.op=e,this.fn=t,this.args=r||[]}function c(e,t,r,n){var i=a.getPrecedence(e,t),o=a.getAssociativity(e,t);if(\"all\"===t||r.length>2){var s=[];return r.forEach(function(e){switch(e.getContent().type){case\"ArrayNode\":case\"ConstantNode\":case\"SymbolNode\":case\"ParenthesisNode\":s.push(!1);break;default:s.push(!0)}}),s}switch(r.length){case 0:return[];case 1:var u=a.getPrecedence(r[0],t);if(n&&null!==u){var c,f;if(\"keep\"===t?(c=r[0].getIdentifier(),f=e.getIdentifier()):(c=r[0].getContent().getIdentifier(),f=e.getContent().getIdentifier()),a.properties[i][f].latexLeftParens===!1)return[!1];if(a.properties[u][c].latexParens===!1)return[!1]}return null===u?[!1]:i>=u?[!0]:[!1];case 2:var l,p=a.getPrecedence(r[0],t),m=a.isAssociativeWith(e,r[0],t);l=null===p?!1:p!==i||\"right\"!==o||m?i>p?!0:!1:!0;var h,g=a.getPrecedence(r[1],t),v=a.isAssociativeWith(e,r[1],t);if(h=null===g?!1:g!==i||\"left\"!==o||v?i>g?!0:!1:!0,n){var f,d,y;\"keep\"===t?(f=e.getIdentifier(),d=e.args[0].getIdentifier(),y=e.args[1].getIdentifier()):(f=e.getContent().getIdentifier(),d=e.args[0].getContent().getIdentifier(),y=e.args[1].getContent().getIdentifier()),null!==p&&(a.properties[i][f].latexLeftParens===!1&&(l=!1),a.properties[p][d].latexParens===!1&&(l=!1)),null!==g&&(a.properties[i][f].latexRightParens===!1&&(h=!1),a.properties[g][y].latexParens===!1&&(h=!1))}return[l,h]}}var f=n(r(255));n(r(261)),n(r(265)),n(r(267));return u.prototype=new f,u.prototype.type=\"OperatorNode\",u.prototype.isOperatorNode=!0,u.prototype._compile=function(e){if(!(this.fn in e.math))throw new Error(\"Function \"+this.fn+' missing in provided namespace \"math\"');var t=this.args.map(function(t){return t._compile(e)});return\"math.\"+this.fn+\"(\"+t.join(\", \")+\")\"},u.prototype.forEach=function(e){for(var t=0;t<this.args.length;t++)e(this.args[t],\"args[\"+t+\"]\",this)},u.prototype.map=function(e){for(var t=[],r=0;r<this.args.length;r++)t[r]=this._ifNode(e(this.args[r],\"args[\"+r+\"]\",this));return new u(this.op,this.fn,t)},u.prototype.clone=function(){return new u(this.op,this.fn,this.args.slice(0))},u.prototype._toString=function(e){var t=e&&e.parenthesis?e.parenthesis:\"keep\",r=this.args,n=c(this,t,r,!1);switch(r.length){case 1:var i=a.getAssociativity(this,t),o=r[0].toString(e);return n[0]&&(o=\"(\"+o+\")\"),\"right\"===i?this.op+o:\"left\"===i?o+this.op:o+this.op;case 2:var s=r[0].toString(e),u=r[1].toString(e);return n[0]&&(s=\"(\"+s+\")\"),n[1]&&(u=\"(\"+u+\")\"),s+\" \"+this.op+\" \"+u;default:return this.fn+\"(\"+this.args.join(\", \")+\")\"}},u.prototype._toTex=function(e){var t=e&&e.parenthesis?e.parenthesis:\"keep\",r=this.args,n=c(this,t,r,!0),o=i.operators[this.fn];switch(o=\"undefined\"==typeof o?this.op:o,r.length){case 1:var s=a.getAssociativity(this,t),u=r[0].toTex(e);return n[0]&&(u=\"\\\\left(\"+u+\"\\\\right)\"),\"right\"===s?o+u:\"left\"===s?u+o:u+o;case 2:var f=r[0],l=f.toTex(e);n[0]&&(l=\"\\\\left(\"+l+\"\\\\right)\");var p=r[1],m=p.toTex(e);n[1]&&(m=\"\\\\left(\"+m+\"\\\\right)\");var h;switch(h=\"keep\"===t?f.getIdentifier():f.getContent().getIdentifier(),this.getIdentifier()){case\"OperatorNode:divide\":return o+\"{\"+l+\"}{\"+m+\"}\";case\"OperatorNode:pow\":switch(l=\"{\"+l+\"}\",m=\"{\"+m+\"}\",h){case\"ConditionalNode\":case\"OperatorNode:divide\":l=\"\\\\left(\"+l+\"\\\\right)\"}}return l+o+m;default:return\"\\\\mathrm{\"+this.fn+\"}\\\\left(\"+r.map(function(t){return t.toTex(e)}).join(\",\")+\"\\\\right)\"}},u.prototype.getIdentifier=function(){return this.type+\":\"+this.fn},u}var i=r(30),a=r(258);t.name=\"OperatorNode\",t.path=\"expression.node\",t.math=!0,t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a,o){function s(e,t){if(!(this instanceof s))throw new SyntaxError(\"Constructor must be called with the new operator\");if(\"string\"!=typeof e)throw new TypeError('string expected for parameter \"name\"');if(!Array.isArray(t)||!t.every(function(e){return e&&e.isNode}))throw new TypeError('Array containing Nodes expected for parameter \"args\"');this.name=e,this.args=t||[]}function u(e,t,r){for(var n,i=\"\",a=new RegExp(\"\\\\$(?:\\\\{([a-z_][a-z_0-9]*)(?:\\\\[([0-9]+)\\\\])?\\\\}|\\\\$)\",\"ig\"),o=0;null!==(n=a.exec(e));)if(i+=e.substring(o,n.index),o=n.index,\"$$\"===n[0])i+=\"$\",o++;else{o+=n[0].length;var s=t[n[1]];if(!s)throw new ReferenceError(\"Template: Property \"+n[1]+\" does not exist.\");if(void 0===n[2])switch(typeof s){case\"string\":i+=s;break;case\"object\":if(s.isNode)i+=s.toTex(r);else{if(!Array.isArray(s))throw new TypeError(\"Template: \"+n[1]+\" has to be a Node, String or array of Nodes\");i+=s.map(function(e,t){if(e&&e.isNode)return e.toTex(r);throw new TypeError(\"Template: \"+n[1]+\"[\"+t+\"] is not a Node.\")}).join(\",\")}break;default:throw new TypeError(\"Template: \"+n[1]+\" has to be a Node, String or array of Nodes\")}else{if(!s[n[2]]||!s[n[2]].isNode)throw new TypeError(\"Template: \"+n[1]+\"[\"+n[2]+\"] is not a Node.\");i+=s[n[2]].toTex(r)}}return i+=e.slice(o)}var c=n(r(255)),f=n(r(265));s.prototype=new c,s.prototype.type=\"FunctionNode\",s.prototype.isFunctionNode=!0,s.prototype._compile=function(e){var t=e.math[this.name],r=\"function\"==typeof t&&1==t.rawArgs,n=this.args.map(function(t){return t._compile(e)});if(r){var i,a=0;do i=\"p\"+a,a++;while(i in e);return e[i]=this.args,'(\"'+this.name+'\" in scope ? scope[\"'+this.name+'\"]('+n.join(\", \")+') : math[\"'+this.name+'\"]('+i+\", math, scope))\"}var o=new f(this.name);return o._compile(e)+\"(\"+n.join(\", \")+\")\"},s.prototype.forEach=function(e){for(var t=0;t<this.args.length;t++)e(this.args[t],\"args[\"+t+\"]\",this)},s.prototype.map=function(e){for(var t=[],r=0;r<this.args.length;r++)t[r]=this._ifNode(e(this.args[r],\"args[\"+r+\"]\",this));return new s(this.name,t)},s.prototype.clone=function(){return new s(this.name,this.args.slice(0))};var l=s.prototype.toString;s.prototype.toString=function(e){var t;return e&&\"object\"==typeof e.handler&&e.handler.hasOwnProperty(this.name)&&(t=e.handler[this.name](this,e)),\"undefined\"!=typeof t?t:l.call(this,e)},s.prototype._toString=function(e){return this.name+\"(\"+this.args.join(\", \")+\")\"};var p=s.prototype.toTex;return s.prototype.toTex=function(e){var t;return e&&\"object\"==typeof e.handler&&e.handler.hasOwnProperty(this.name)&&(t=e.handler[this.name](this,e)),\"undefined\"!=typeof t?t:p.call(this,e)},s.prototype._toTex=function(e){var t,r=(e&&e.parenthesis?e.parenthesis:\"keep\",this.args.map(function(t){return t.toTex(e)}));!o[this.name]||\"function\"!=typeof o[this.name].toTex&&\"object\"!=typeof o[this.name].toTex&&\"string\"!=typeof o[this.name].toTex||(t=o[this.name].toTex);var n;switch(typeof t){case\"function\":n=t(this,e);break;case\"string\":n=u(t,this,e);break;case\"object\":switch(typeof t[r.length]){case\"function\":n=t[r.length](this,e);break;case\"string\":n=u(t[r.length],this,e)}}return\"undefined\"!=typeof n?n:u(i.defaultTemplate,this,e)},s.prototype.getIdentifier=function(){return this.type+\":\"+this.name},s}var i=r(30);t.name=\"FunctionNode\",t.path=\"expression.node\",t.math=!0,t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){function a(e){if(!(this instanceof a))throw new SyntaxError(\"Constructor must be called with the new operator\");if(!e||!e.isNode)throw new TypeError('Node expected for parameter \"content\"');this.content=e}var o=n(r(255));return a.prototype=new o,a.prototype.type=\"ParenthesisNode\",a.prototype.isParenthesisNode=!0,a.prototype._compile=function(e){return this.content._compile(e)},a.prototype.getContent=function(){return this.content.getContent()},a.prototype.forEach=function(e){e(this.content,\"content\",this)},a.prototype.map=function(e){var t=e(this.content,\"content\",this);return new a(t)},a.prototype.clone=function(){return new a(this.content)},a.prototype._toString=function(e){return!e||e&&\"keep\"===e.parenthesis?\"(\"+this.content.toString(e)+\")\":this.content.toString(e)},a.prototype._toTex=function(e){return!e||e&&\"keep\"===e.parenthesis?\"\\\\left(\"+this.content.toTex(e)+\"\\\\right)\":this.content.toTex(e)},a}t.name=\"ParenthesisNode\",t.path=\"expression.node\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){function a(e,t){if(!(this instanceof a))throw new SyntaxError(\"Constructor must be called with the new operator\");if(!e||!e.isIndexNode)throw new TypeError('Expected IndexNode for parameter \"index\"');if(!t||!t.isNode)throw new TypeError('Expected Node for parameter \"expr\"');this.index=e,this.expr=t}var o=n(r(255));n(r(263));return a.prototype=new o,a.prototype.type=\"UpdateNode\",a.prototype.isUpdateNode=!0,a.prototype._compile=function(e){var t=this.index.objectName()in e.args?this.name+\" = \":'scope[\"'+this.index.objectName()+'\"]',r=this.index.compileSubset(e,this.expr._compile(e));return t+\" = \"+r},a.prototype.forEach=function(e){e(this.index,\"index\",this),e(this.expr,\"expr\",this)},a.prototype.map=function(e){return new a(this._ifNode(e(this.index,\"index\",this)),this._ifNode(e(this.expr,\"expr\",this)))},a.prototype.clone=function(){return new a(this.index,this.expr)},a.prototype._toString=function(e){var t=this.expr.toString(e);return e&&\"all\"===e.parenthesis&&(t=\"(\"+t+\")\"),this.index.toString(e)+\" = \"+t},a.prototype._toTex=function(e){var t=this.expr.toTex(e);return e&&\"all\"===e.parenthesis&&(t=\"\\\\left(\"+t+\"\\\\right)\"),this.index.toTex(e)+\":=\"+t},a}t.name=\"UpdateNode\",t.path=\"expression.node\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(253));return a(\"compile\",{string:function(e){var t={};return o(e).compile().eval(t)},\"string, Object\":function(e,t){return o(e).compile().eval(t)},\"Array | Matrix\":function(e){var t={};return i(e,function(e){return o(e).compile().eval(t)})},\"Array | Matrix, Object\":function(e,t){return i(e,function(e){return o(e).compile().eval(t)})}})}var i=r(19);t.name=\"eval\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i,a){var o=n(r(81));return i(\"help\",{any:function(t){var r,n=t;if(\"string\"!=typeof t)for(r in a)if(a.hasOwnProperty(r)&&t===a[r]){n=r;break}var i=o[n];if(!i)throw new Error('No documentation found on \"'+n+'\"');return new e.Help(i)}})}t.math=!0,t.name=\"help\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(253));return i(\"parse\",{\"string | Array | Matrix\":a,\"string | Array | Matrix, Object\":a})}t.name=\"parse\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i,a){var o=n(r(274));return i(\"parser\",{\"\":function(){return new o(a)}})}t.name=\"parser\",t.factory=n,t.math=!0},function(e,t,r){\"use strict\";function n(e,t,n,i,a){function o(){if(!(this instanceof o))throw new SyntaxError(\"Constructor must be called with the new operator\");this.scope={}}var s=n(r(253));return o.prototype.type=\"Parser\",o.prototype.isParser=!0,o.prototype.parse=function(e){throw new Error(\"Parser.parse is deprecated. Use math.parse instead.\")},o.prototype.compile=function(e){throw new Error(\"Parser.compile is deprecated. Use math.compile instead.\")},o.prototype.eval=function(e){return s(e).compile().eval(this.scope)},o.prototype.get=function(e){return this.scope[e]},o.prototype.set=function(e,t){return this.scope[e]=t},o.prototype.remove=function(e){delete this.scope[e]},o.prototype.clear=function(){for(var e in this.scope)this.scope.hasOwnProperty(e)&&delete this.scope[e]},o}t.name=\"Parser\",t.path=\"expression\",t.factory=n,t.math=!0},function(e,t,r){e.exports=[r(254),r(257),r(259),r(260),r(261),r(263),r(262),r(267),r(255),r(266),r(268),r(264),r(265),r(269)]},function(e,t,r){e.exports=[r(277),r(280),r(282),r(284),r(285),r(287),r(292),r(305),r(307),r(309)]},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(279));return a(\"concat\",{\"...any\":function(e){var t=e.length-1,r=e[t];\"number\"==typeof r?e[t]=r-1:r&&r.isBigNumber===!0&&(e[t]=r.minus(1));try{return o.apply(null,e)}catch(n){throw i(n)}}})}var i=r(278).transform;t.name=\"concat\",t.path=\"expression.transform\",t.factory=n},function(e,t,r){var n=r(43);t.transform=function(e){return e&&e.isIndexError?new n(e.index+1,e.min+1,e.max+1):e}},function(e,t,r){\"use strict\";function n(e,t,n,f){var l=n(r(51)),p=f(\"concat\",{\"...Array | Matrix | number | BigNumber\":function(e){var t,r,n=e.length,f=-1,p=!1,m=[];for(t=0;n>t;t++){var h=e[t];if(h&&h.isMatrix===!0&&(p=!0),\"number\"==typeof h||h&&h.isBigNumber===!0){if(t!==n-1)throw new Error(\"Dimension must be specified as last argument\");if(r=f,f=h.valueOf(),!o(f))throw new TypeError(\"Integer number expected for dimension\");if(0>f)throw new u(f);if(t>0&&f>r)throw new u(f,r+1)}else{var g=a(h).valueOf(),v=s.size(g);if(m[t]=g,r=f,f=v.length-1,t>0&&f!=r)throw new c(r+1,f+1)}}if(0==m.length)throw new SyntaxError(\"At least one matrix expected\");for(var d=m.shift();m.length;)d=i(d,m.shift(),f,0);return p?l(d):d},\"...string\":function(e){return e.join(\"\")}});return p.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",\np}function i(e,t,r,n){if(r>n){if(e.length!=t.length)throw new c(e.length,t.length);for(var a=[],o=0;o<e.length;o++)a[o]=i(e[o],t[o],r,n+1);return a}return e.concat(t)}var a=r(3).clone,o=r(6).isInteger,s=r(40),u=r(43),c=r(42);t.name=\"concat\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){function a(e,t,r){var n,i;if(e[0]&&(n=e[0].compile().eval(r)),e[1])if(e[1]&&e[1].isSymbolNode)i=e[1].compile().eval(r);else{var a=r||{},s=e[1].filter(function(e){return e&&e.isSymbolNode&&!(e.name in t)&&!(e.name in a)})[0],u=Object.create(a),c=e[1].compile();if(!s)throw new Error(\"No undefined variable found in filter equation\");var f=s.name;i=function(e){return u[f]=e,c.eval(u)}}return o(n,i)}var o=n(r(281));n(r(265));return a.rawArgs=!0,a}t.name=\"filter\",t.path=\"expression.transform\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=n(r(51)),u=o(\"filter\",{\"Array, function\":i,\"Array, RegExp\":a,\"Matrix, function\":function(e,t){return s(i(e.toArray(),t))},\"Matrix, RegExp\":function(e,t){return s(a(e.toArray(),t))}});return u.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",u}function i(e,t){if(1!==o(e).length)throw new Error(\"Only one dimensional matrices supported\");return e.filter(function(e){return t(e)})}function a(e,t){if(1!==o(e).length)throw new Error(\"Only one dimensional matrices supported\");return e.filter(function(e){return t.test(e)})}var o=r(40).size;t.name=\"filter\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){n(r(283));return i(\"forEach\",{\"Array | Matrix, function\":function(e,t){var r=function(n,i){Array.isArray(n)?n.forEach(function(e,t){r(e,i.concat(t+1))}):t(n,i,e)};r(e.valueOf(),[])}})}t.name=\"forEach\",t.path=\"expression.transform\",t.factory=n},function(e,t){\"use strict\";function r(e,t,r,i){var a=i(\"forEach\",{\"Array, function\":n,\"Matrix, function\":function(e,t){return e.forEach(t)}});return a.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",a}function n(e,t){var r=function(n,i){Array.isArray(n)?n.forEach(function(e,t){r(e,i.concat(t))}):t(n,i,e)};r(e,[])}t.name=\"forEach\",t.factory=r},function(e,t,r){\"use strict\";function n(e,t,n){n(r(67));return function(){for(var t=[],r=0,n=arguments.length;n>r;r++){var i=arguments[r];if(i&&i.isRange===!0)i.start--,i.end-=i.step>0?0:2;else if(i&&i.isSet===!0)i=i.map(function(e){return e-1});else if(i&&(i.isArray===!0||i.isMatrix))i=i.map(function(e){return e-1});else if(\"number\"==typeof i)i--;else{if(!i||i.isBigNumber!==!0)throw new TypeError(\"Ranges must be a Number, Range, Array or Matrix\");i=i.toNumber()-1}t[r]=i}var a=new e.Index;return e.Index.apply(a,t),a}}Array.isArray;t.name=\"index\",t.path=\"expression.transform\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=(n(r(286)),n(r(51)));return a(\"max\",{\"Array, function\":function(e,t){return i(e,t,e)},\"Matrix, function\":function(e,t){return o(i(e.valueOf(),t,e))}})}function i(e,t,r){function n(e,i){return Array.isArray(e)?e.map(function(e,t){return n(e,i.concat(t+1))}):t(e,i,r)}return n(e,[])}t.name=\"map\",t.path=\"expression.transform\",t.factory=n},function(e,t){\"use strict\";function r(e,t,r,i){var a=i(\"map\",{\"Array, function\":n,\"Matrix, function\":function(e,t){return e.map(t)}});return a.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",a}function n(e,t){var r=function(n,i){return Array.isArray(n)?n.map(function(e,t){return r(e,i.concat(t))}):t(n,i,e)};return r(e,[])}t.name=\"map\",t.factory=r},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=n(r(289));return o(\"max\",{\"...any\":function(e){if(2==e.length&&a(e[0])){var t=e[1];\"number\"==typeof t?e[1]=t-1:t&&t.isBigNumber===!0&&(e[1]=t.minus(1))}try{return s.apply(null,e)}catch(r){throw i(r)}}})}var i=r(278).transform,a=r(288);t.name=\"max\",t.path=\"expression.transform\",t.factory=n},function(e,t){\"use strict\";e.exports=function(e){return Array.isArray(e)||e&&e.isMatrix===!0}},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(e,t){return c(e,t)?e:t}function u(e){var t=void 0;if(i(e,function(e){(void 0===t||c(e,t))&&(t=e)}),void 0===t)throw new Error(\"Cannot calculate max of an empty array\");return t}var c=n(r(63)),f=o(\"max\",{\"Array | Matrix\":u,\"Array | Matrix, number | BigNumber\":function(e,t){return a(e,t.valueOf(),s)},\"...\":function(){return u(arguments)}});return f.toTex=\"\\\\max\\\\left(${args}\\\\right)\",f}var i=r(290),a=r(291);t.name=\"max\",t.factory=n},function(e,t){\"use strict\";e.exports=function r(e,t){e&&e.isMatrix===!0&&(e=e.valueOf());for(var n=0,i=e.length;i>n;n++){var a=e[n];Array.isArray(a)?r(a,t):t(a)}}},function(e,t,r){\"use strict\";function n(e,t,r){var a,o,s,u;if(0>=t){if(Array.isArray(e[0])){for(u=i(e),o=[],a=0;a<u.length;a++)o[a]=n(u[a],t-1,r);return o}for(s=e[0],a=1;a<e.length;a++)s=r(s,e[a]);return s}for(o=[],a=0;a<e.length;a++)o[a]=n(e[a],t-1,r);return o}function i(e){var t,r,n=e.length,i=e[0].length,a=[];for(r=0;i>r;r++){var o=[];for(t=0;n>t;t++)o.push(e[t][r]);a.push(o)}return a}var a=r(40).size,o=r(43);e.exports=function(e,t,r){var i=Array.isArray(e)?a(e):e.size();if(0>t)throw new o(t);if(t>=i.length)throw new o(t,i.length);return e&&e.isMatrix===!0?e.create(n(e.valueOf(),t,r)):n(e,t,r)}},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=n(r(293));return o(\"mean\",{\"...any\":function(e){if(2==e.length&&a(e[0])){var t=e[1];\"number\"==typeof t?e[1]=t-1:t&&t.isBigNumber===!0&&(e[1]=t.minus(1))}try{return s.apply(null,e)}catch(r){throw i(r)}}})}var i=r(278).transform,a=r(288);t.name=\"mean\",t.path=\"expression.transform\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,s){function u(e,t){var r=o(e,t,f),n=Array.isArray(e)?i(e):e.size();return l(r,n[t])}function c(e){var t=0,r=0;if(a(e,function(e){t=f(t,e),r++}),0===r)throw new Error(\"Cannot calculate mean of an empty array\");return l(t,r)}var f=n(r(50)),l=n(r(294)),p=s(\"mean\",{\"Array | Matrix\":c,\"Array | Matrix, number | BigNumber\":u,\"...\":function(){return c(arguments)}});return p.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",p}var i=r(40).size,a=r(290),o=r(291);t.name=\"mean\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(295)),s=n(r(296)),u=n(r(299)),c=n(r(51)),f=n(r(298)),l=n(r(57)),p=a(\"divide\",i({\"Array | Matrix, Array | Matrix\":function(e,t){return s(e,u(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=f(e,t,o,!1);break;case\"dense\":r=l(e,t,o,!1)}return r},\"Array, any\":function(e,t){return l(c(e),t,o,!1).valueOf()},\"any, Array | Matrix\":function(e,t){return s(e,u(t))}},o.signatures));return p.toTex=\"\\\\frac{${args[0]}}{${args[1]}}\",p}var i=r(3).extend;t.name=\"divide\",t.factory=n},function(e,t){\"use strict\";function r(e,t,r,n){function i(t,r){var n=r.re*r.re+r.im*r.im;return 0!=n?new e.Complex((t.re*r.re+t.im*r.im)/n,(t.im*r.re-t.re*r.im)/n):new e.Complex(0!=t.re?t.re/0:0,0!=t.im?t.im/0:0)}var a=n(\"divide\",{\"number, number\":function(e,t){return e/t},\"Complex, Complex\":i,\"BigNumber, BigNumber\":function(e,t){return e.div(t)},\"Fraction, Fraction\":function(e,t){return e.div(t)},\"Unit, number\":function(e,t){var r=e.clone();return r.value=(null===r.value?r._normalize(1):r.value)/t,r},\"number, Unit\":function(e,t){var r=t.pow(-1);return r.value=(null===r.value?r._normalize(1):r.value)*e,r},\"Unit, Unit\":function(e,t){return e.divide(t)}});return a}t.factory=r},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=r(30),u=n(r(51)),c=n(r(52)),f=n(r(297)),l=n(r(48)),p=n(r(298)),m=n(r(57)),h=e.DenseMatrix,g=e.SparseMatrix,v=o(\"multiply\",i({\"Array, Array\":function(e,t){d(a.size(e),a.size(t));var r=v(u(e),u(t));return r&&r.isMatrix===!0?r.valueOf():r},\"Matrix, Matrix\":function(e,t){var r=e.size(),n=t.size();return d(r,n),1===r.length?1===n.length?y(e,t,r[0]):x(e,t):1===n.length?b(e,t):N(e,t)},\"Matrix, Array\":function(e,t){return v(e,u(t))},\"Array, Matrix\":function(e,t){return v(u(e,t.storage()),t)},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=p(e,t,f,!1);break;case\"dense\":r=m(e,t,f,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=p(t,e,f,!0);break;case\"dense\":r=m(t,e,f,!0)}return r},\"Array, any\":function(e,t){return m(u(e),t,f,!1).valueOf()},\"any, Array\":function(e,t){return m(u(t),e,f,!0).valueOf()}},f.signatures)),d=function(e,t){switch(e.length){case 1:switch(t.length){case 1:if(e[0]!==t[0])throw new RangeError(\"Dimension mismatch in multiplication. Vectors must have the same length\");break;case 2:if(e[0]!==t[0])throw new RangeError(\"Dimension mismatch in multiplication. Vector length (\"+e[0]+\") must match Matrix rows (\"+t[0]+\")\");break;default:throw new Error(\"Can only multiply a 1 or 2 dimensional matrix (Matrix B has \"+t.length+\" dimensions)\")}break;case 2:switch(t.length){case 1:if(e[1]!==t[0])throw new RangeError(\"Dimension mismatch in multiplication. Matrix columns (\"+e[1]+\") must match Vector length (\"+t[0]+\")\");break;case 2:if(e[1]!==t[0])throw new RangeError(\"Dimension mismatch in multiplication. Matrix A columns (\"+e[1]+\") must match Matrix B rows (\"+t[0]+\")\");break;default:throw new Error(\"Can only multiply a 1 or 2 dimensional matrix (Matrix B has \"+t.length+\" dimensions)\")}break;default:throw new Error(\"Can only multiply a 1 or 2 dimensional matrix (Matrix A has \"+e.length+\" dimensions)\")}},y=function(e,t,r){if(0===r)throw new Error(\"Cannot multiply two empty vectors\");var n,i=e._data,a=e._datatype,s=t._data,u=t._datatype,l=c,p=f;a&&u&&a===u&&\"string\"==typeof a&&(n=a,l=o.find(c,[n,n]),p=o.find(f,[n,n]));for(var m=p(i[0],s[0]),h=1;r>h;h++)m=l(m,p(i[h],s[h]));return m},x=function(e,t){switch(t.storage()){case\"dense\":return w(e,t)}throw new Error(\"Not implemented\")},w=function(e,t){var r,n=e._data,i=e._size,a=e._datatype,s=t._data,u=t._size,l=t._datatype,p=i[0],m=u[1],g=c,v=f;a&&l&&a===l&&\"string\"==typeof a&&(r=a,g=o.find(c,[r,r]),v=o.find(f,[r,r]));for(var d=[],y=0;m>y;y++){for(var x=v(n[0],s[0][y]),w=1;p>w;w++)x=g(x,v(n[w],s[w][y]));d[y]=x}return 1===m?d[0]:new h({data:d,size:[m],datatype:r})},b=function(e,t){switch(e.storage()){case\"dense\":return E(e,t);case\"sparse\":return _(e,t)}},N=function(e,t){switch(e.storage()){case\"dense\":switch(t.storage()){case\"dense\":return M(e,t);case\"sparse\":return A(e,t)}break;case\"sparse\":switch(t.storage()){case\"dense\":return O(e,t);case\"sparse\":return T(e,t)}}},E=function(e,t){var r,n=e._data,i=e._size,a=e._datatype,s=t._data,u=t._datatype,l=i[0],p=i[1],m=c,g=f;a&&u&&a===u&&\"string\"==typeof a&&(r=a,m=o.find(c,[r,r]),g=o.find(f,[r,r]));for(var v=[],d=0;l>d;d++){for(var y=n[d],x=g(y[0],s[0]),w=1;p>w;w++)x=m(x,g(y[w],s[w]));v[d]=x}return 1===l?v[0]:new h({data:v,size:[l],datatype:r})},M=function(e,t){var r,n=e._data,i=e._size,a=e._datatype,s=t._data,u=t._size,l=t._datatype,p=i[0],m=i[1],g=u[1],v=c,d=f;a&&l&&a===l&&\"string\"==typeof a&&(r=a,v=o.find(c,[r,r]),d=o.find(f,[r,r]));for(var y=[],x=0;p>x;x++){var w=n[x];y[x]=[];for(var b=0;g>b;b++){for(var N=d(w[0],s[0][b]),E=1;m>E;E++)N=v(N,d(w[E],s[E][b]));y[x][b]=N}}return 1===p&&1===g?y[0][0]:new h({data:y,size:[p,g],datatype:r})},A=function(e,t){var r=e._data,n=e._size,i=e._datatype,a=t._values,s=t._index,u=t._ptr,p=t._size,m=t._datatype;if(!a)throw new Error(\"Cannot multiply Dense Matrix times Pattern only Matrix\");var h,v=n[0],d=p[1],y=c,x=f,w=l,b=0;i&&m&&i===m&&\"string\"==typeof i&&(h=i,y=o.find(c,[h,h]),x=o.find(f,[h,h]),w=o.find(l,[h,h]),b=o.convert(0,h));for(var N=[],E=[],M=[],A=new g({values:N,index:E,ptr:M,size:[v,d],datatype:h}),_=0;d>_;_++){M[_]=E.length;var O=u[_],T=u[_+1];if(T>O)for(var C=0,S=0;v>S;S++){for(var z,B=S+1,k=O;T>k;k++){var I=s[k];C!==B?(z=x(r[S][I],a[k]),C=B):z=y(z,x(r[S][I],a[k]))}C!==B||w(z,b)||(E.push(S),N.push(z))}}return M[d]=E.length,1===v&&1===d?1===N.length?N[0]:0:A},_=function(e,t){var r=e._values,n=e._index,i=e._ptr,a=e._datatype;if(!r)throw new Error(\"Cannot multiply Pattern only Matrix times Dense Matrix\");var s,u=t._data,p=t._datatype,m=e._size[0],h=t._size[0],v=[],d=[],y=[],x=c,w=f,b=l,N=0;a&&p&&a===p&&\"string\"==typeof a&&(s=a,x=o.find(c,[s,s]),w=o.find(f,[s,s]),b=o.find(l,[s,s]),N=o.convert(0,s));var E=[],M=[];y[0]=0;for(var A=0;h>A;A++){var _=u[A];if(!b(_,N))for(var O=i[A],T=i[A+1],C=O;T>C;C++){var S=n[C];M[S]?E[S]=x(E[S],w(_,r[C])):(M[S]=!0,d.push(S),E[S]=w(_,r[C]))}}for(var z=d.length,B=0;z>B;B++){var k=d[B];v[B]=E[k]}return y[1]=d.length,1===m?1===v.length?v[0]:0:new g({values:v,index:d,ptr:y,size:[m,1],datatype:s})},O=function(e,t){var r=e._values,n=e._index,i=e._ptr,a=e._datatype;if(!r)throw new Error(\"Cannot multiply Pattern only Matrix times Dense Matrix\");var s,u=t._data,p=t._datatype,m=e._size[0],h=t._size[0],v=t._size[1],d=c,y=f,x=l,w=0;a&&p&&a===p&&\"string\"==typeof a&&(s=a,d=o.find(c,[s,s]),y=o.find(f,[s,s]),x=o.find(l,[s,s]),w=o.convert(0,s));for(var b=[],N=[],E=[],M=new g({values:b,index:N,ptr:E,size:[m,v],datatype:s}),A=[],_=[],O=0;v>O;O++){E[O]=N.length;for(var T=O+1,C=0;h>C;C++){var S=u[C][O];if(!x(S,w))for(var z=i[C],B=i[C+1],k=z;B>k;k++){var I=n[k];_[I]!==T?(_[I]=T,N.push(I),A[I]=y(S,r[k])):A[I]=d(A[I],y(S,r[k]))}}for(var R=E[O],P=N.length,U=R;P>U;U++){var q=N[U];b[U]=A[q]}}return E[v]=N.length,1===m&&1===v?1===b.length?b[0]:0:M},T=function(e,t){var r,n=e._values,i=e._index,a=e._ptr,s=e._datatype,u=t._values,l=t._index,p=t._ptr,m=t._datatype,h=e._size[0],v=t._size[1],d=n&&u,y=c,x=f;s&&m&&s===m&&\"string\"==typeof s&&(r=s,y=o.find(c,[r,r]),x=o.find(f,[r,r]));for(var w,b,N,E,M,A,_,O,T=d?[]:void 0,C=[],S=[],z=new g({values:T,index:C,ptr:S,size:[h,v],datatype:r}),B=d?[]:void 0,k=[],I=0;v>I;I++){S[I]=C.length;var R=I+1;for(M=p[I],A=p[I+1],E=M;A>E;E++)if(O=l[E],d)for(b=a[O],N=a[O+1],w=b;N>w;w++)_=i[w],k[_]!==R?(k[_]=R,C.push(_),B[_]=x(u[E],n[w])):B[_]=y(B[_],x(u[E],n[w]));else for(b=a[O],N=a[O+1],w=b;N>w;w++)_=i[w],k[_]!==R&&(k[_]=R,C.push(_));if(d)for(var P=S[I],U=C.length,q=P;U>q;q++){var L=C[q];T[q]=B[L]}}return S[v]=C.length,1===h&&1===v&&d?1===T.length?T[0]:0:z};return v.toTex=\"\\\\left(${args[0]}\"+s.operators.multiply+\"${args[1]}\\\\right)\",v}var i=r(3).extend,a=r(40);t.name=\"multiply\",t.factory=n},function(e,t){\"use strict\";function r(e,t,r,n){var i=n(\"multiplyScalar\",{\"number, number\":function(e,t){return e*t},\"Complex, Complex\":function(t,r){return new e.Complex(t.re*r.re-t.im*r.im,t.re*r.im+t.im*r.re)},\"BigNumber, BigNumber\":function(e,t){return e.times(t)},\"Fraction, Fraction\":function(e,t){return e.mul(t)},\"number, Unit\":function(e,t){var r=t.clone();return r.value=null===r.value?r._normalize(e):r.value*e,r},\"Unit, number\":function(e,t){var r=e.clone();return r.value=null===r.value?r._normalize(t):r.value*t,r},\"Unit, Unit\":function(e,t){return e.multiply(t)}});return i}t.factory=r},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(48)),o=e.SparseMatrix,s=function(e,t,r,n){var s=e._values,u=e._index,c=e._ptr,f=e._size,l=e._datatype;if(!s)throw new Error(\"Cannot perform operation on Pattern Sparse Matrix and Scalar value\");var p,m=f[0],h=f[1],g=a,v=0,d=r;\"string\"==typeof l&&(p=l,g=i.find(a,[p,p]),v=i.convert(0,p),t=i.convert(t,p),d=i.find(r,[p,p]));for(var y=[],x=[],w=[],b=new o({values:y,index:x,ptr:w,size:[m,h],datatype:p}),N=0;h>N;N++){w[N]=x.length;for(var E=c[N],M=c[N+1],A=E;M>A;A++){var _=u[A],O=n?d(t,s[A]):d(s[A],t);g(O,v)||(x.push(_),y.push(O))}}return w[h]=x.length,b};return s}t.name=\"algorithm11\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e,t,r){var n,i,a,o,s;if(1==t){if(o=e[0][0],0==o)throw Error(\"Cannot calculate inverse, determinant is zero\");return[[u(1,o)]]}if(2==t){var h=p(e);if(0==h)throw Error(\"Cannot calculate inverse, determinant is zero\");return[[u(e[1][1],h),u(l(e[0][1]),h)],[u(l(e[1][0]),h),u(e[0][0],h)]]}var g=e.concat();for(n=0;t>n;n++)g[n]=g[n].concat();for(var v=m(t).valueOf(),d=0;r>d;d++){for(n=d;t>n&&0==g[n][d];)n++;if(n==t||0==g[n][d])throw Error(\"Cannot calculate inverse, determinant is zero\");n!=d&&(s=g[d],g[d]=g[n],g[n]=s,s=v[d],v[d]=v[n],v[n]=s);var y=g[d],x=v[d];for(n=0;t>n;n++){var w=g[n],b=v[n];if(n!=d){if(0!=w[d]){for(a=u(l(w[d]),y[d]),i=d;r>i;i++)w[i]=c(w[i],f(a,y[i]));for(i=0;r>i;i++)b[i]=c(b[i],f(a,x[i]))}}else{for(a=y[d],i=d;r>i;i++)w[i]=u(w[i],a);for(i=0;r>i;i++)b[i]=u(b[i],a)}}}return v}var s=n(r(51)),u=n(r(295)),c=n(r(52)),f=n(r(296)),l=n(r(300)),p=n(r(301)),m=n(r(304)),h=a(\"inv\",{\"Array | Matrix\":function(e){var t=e.isMatrix===!0?e.size():i.array.size(e);switch(t.length){case 1:if(1==t[0])return e.isMatrix===!0?s([u(1,e.valueOf()[0])]):[u(1,e[0])];throw new RangeError(\"Matrix must be square (size: \"+i.string.format(t)+\")\");case 2:var r=t[0],n=t[1];if(r==n)return e.isMatrix===!0?s(o(e.valueOf(),r,n),e.storage()):o(e,r,n);throw new RangeError(\"Matrix must be square (size: \"+i.string.format(t)+\")\");default:throw new RangeError(\"Matrix must be two dimensional (size: \"+i.string.format(t)+\")\")}},any:function(e){return u(1,e)}});return h.toTex=\"\\\\left(${args[0]}\\\\right)^{-1}\",h}var i=r(39);t.name=\"inv\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=r(30),s=a(\"unaryMinus\",{number:function(e){return-e},Complex:function(t){return new e.Complex(-t.re,-t.im)},BigNumber:function(e){return e.neg()},Fraction:function(e){return e.neg()},Unit:function(e){var t=e.clone();return t.value=-e.value,t},\"Array | Matrix\":function(e){return i(e,s,!0)}});return s.toTex=o.operators.unaryMinus+\"\\\\left(${args[0]}\\\\right)\",s}var i=r(19);t.name=\"unaryMinus\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){function s(e,t,r){if(1==t)return a.clone(e[0][0]);if(2==t)return f(l(e[0][0],e[1][1]),l(e[1][0],e[0][1]));for(var n=function(e){var t,r,n=new Array(e.length),i=0;for(t=1;t<e.length;t++)i=c(i,e[t][t]);for(t=0;t<e.length;t++){for(n[t]=new Array(e.length),n[t][t]=p(i),r=0;t>r;r++)n[t][r]=0;for(r=t+1;r<e.length;r++)n[t][r]=e[t][r];t+1<e.length&&(i=f(i,e[t+1][t+1]))}return n},i=e,o=0;t-1>o;o++)i=l(n(i),e);return t%2==0?p(i[0][0]):i[0][0]}var u=n(r(51)),c=n(r(50)),f=n(r(302)),l=n(r(296)),p=n(r(300)),m=i(\"det\",{any:function(e){return a.clone(e)},\"Array | Matrix\":function(e){var t;switch(e&&e.isMatrix===!0?t=e.size():Array.isArray(e)?(e=u(e),t=e.size()):t=[],t.length){case 0:return a.clone(e);case 1:if(1==t[0])return a.clone(e.valueOf()[0]);throw new RangeError(\"Matrix must be square (size: \"+o.format(t)+\")\");case 2:var r=t[0],n=t[1];if(r==n)return s(e.clone().valueOf(),r,n);throw new RangeError(\"Matrix must be square (size: \"+o.format(t)+\")\");default:throw new RangeError(\"Matrix must be two dimensional (size: \"+o.format(t)+\")\")}}});return m.toTex=\"\\\\det\\\\left(${args[0]}\\\\right)\",m}var i=r(39),a=i.object,o=i.string;t.name=\"det\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=r(30),s=n(r(51)),u=n(r(52)),c=n(r(300)),f=n(r(53)),l=n(r(60)),p=n(r(303)),m=n(r(55)),h=n(r(56)),g=n(r(57)),v=a(\"subtract\",{\"number, number\":function(e,t){return e-t},\"Complex, Complex\":function(t,r){return new e.Complex(t.re-r.re,t.im-r.im)},\"BigNumber, BigNumber\":function(e,t){return e.minus(t)},\"Fraction, Fraction\":function(e,t){return e.sub(t)},\"Unit, Unit\":function(e,t){if(null==e.value)throw new Error(\"Parameter x contains a unit with undefined value\");if(null==t.value)throw new Error(\"Parameter y contains a unit with undefined value\");if(!e.equalBase(t))throw new Error(\"Units do not match\");var r=e.clone();return r.value-=t.value,r.fixPrefix=!1,r},\"Matrix, Matrix\":function(e,t){var r=e.size(),n=t.size();if(r.length!==n.length)throw new i(r.length,n.length);var a;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":a=p(e,t,v);break;default:a=l(t,e,v,!0)}break;default:switch(t.storage()){case\"sparse\":a=f(e,t,v,!1);break;default:a=h(e,t,v)}}return a},\"Array, Array\":function(e,t){return v(s(e),s(t)).valueOf()},\"Array, Matrix\":function(e,t){return v(s(e),t)},\"Matrix, Array\":function(e,t){return v(e,s(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=m(e,c(t),u);break;default:r=g(e,t,v)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=m(t,e,v,!0);break;default:r=g(t,e,v,!0)}return r},\"Array, any\":function(e,t){return g(s(e),t,v,!1).valueOf()},\"any, Array\":function(e,t){return g(s(t),e,v,!0).valueOf()}});return v.toTex=\"\\\\left(${args[0]}\"+o.operators.subtract+\"${args[1]}\\\\right)\",v}var i=r(42);t.name=\"subtract\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(48)),s=e.SparseMatrix,u=function(e,t,r){var n=e._values,u=e._index,c=e._ptr,f=e._size,l=e._datatype,p=t._values,m=t._index,h=t._ptr,g=t._size,v=t._datatype;if(f.length!==g.length)throw new i(f.length,g.length);if(f[0]!==g[0]||f[1]!==g[1])throw new RangeError(\"Dimension mismatch. Matrix A (\"+f+\") must match Matrix B (\"+g+\")\");var d,y=f[0],x=f[1],w=o,b=0,N=r;\"string\"==typeof l&&l===v&&(d=l,w=a.find(o,[d,d]),b=a.convert(0,d),N=a.find(r,[d,d]));var E,M,A,_,O=n&&p?[]:void 0,T=[],C=[],S=new s({values:O,index:T,ptr:C,size:[y,x],datatype:d}),z=O?[]:void 0,B=O?[]:void 0,k=[],I=[];for(M=0;x>M;M++){C[M]=T.length;var R=M+1;for(A=c[M],_=c[M+1];_>A;A++)E=u[A],T.push(E),k[E]=R,z&&(z[E]=n[A]);for(A=h[M],_=h[M+1];_>A;A++)E=m[A],k[E]!==R&&T.push(E),I[E]=R,B&&(B[E]=p[A]);if(O)for(A=C[M];A<T.length;){E=T[A];var P=k[E],U=I[E];if(P===R||U===R){var q=P===R?z[E]:b,L=U===R?B[E]:b,F=N(q,L);w(F,b)?T.splice(A,1):(O.push(F),A++)}}}return C[x]=T.length,S};return u}var i=r(42);t.name=\"algorithm05\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(e,t){switch(e.length){case 0:return t?c(t):[];case 1:return u(e[0],e[0],t);case 2:return u(e[0],e[1],t);default:throw new Error(\"Vector containing two values expected\")}}function u(t,r,n){var o=t&&t.isBigNumber===!0?e.BigNumber:r&&r.isBigNumber===!0?e.BigNumber:null;if(t&&t.isBigNumber===!0&&(t=t.toNumber()),r&&r.isBigNumber===!0&&(r=r.toNumber()),!a(t)||1>t)throw new Error(\"Parameters in function eye must be positive integers\");if(!a(r)||1>r)throw new Error(\"Parameters in function eye must be positive integers\");var s=o?new e.BigNumber(1):1,u=o?new o(0):0,c=[t,r];if(n){var f=e.Matrix.storage(n);return f.diagonal(c,s,0,u)}for(var l=i.resize([],c,u),p=r>t?t:r,m=0;p>m;m++)l[m][m]=s;return l}var c=n(r(51)),f=o(\"eye\",{\"\":function(){return\"matrix\"===t.matrix?c([]):[]},string:function(e){return c(e)},\"number | BigNumber\":function(e){return u(e,e,\"matrix\"===t.matrix?\"default\":void 0)},\"number | BigNumber, string\":function(e,t){return u(e,e,t)},\"number | BigNumber, number | BigNumber\":function(e,r){return u(e,r,\"matrix\"===t.matrix?\"default\":void 0)},\"number | BigNumber, number | BigNumber, string\":function(e,t,r){return u(e,t,r)},Array:function(e){return s(e)},\"Array, string\":function(e,t){return s(e,t)},Matrix:function(e){return s(e.valueOf(),e.storage())},\"Matrix, string\":function(e,t){return s(e.valueOf(),t)}});return f.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",f}var i=r(40),a=r(6).isInteger;t.name=\"eye\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=n(r(306));return o(\"min\",{\"...any\":function(e){if(2==e.length&&a(e[0])){var t=e[1];\"number\"==typeof t?e[1]=t-1:t&&t.isBigNumber===!0&&(e[1]=t.minus(1))}try{return s.apply(null,e)}catch(r){throw i(r)}}})}var i=r(278).transform,a=r(288);t.name=\"min\",t.path=\"expression.transform\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(e,t){return c(e,t)?e:t}function u(e){var t=void 0;if(i(e,function(e){(void 0===t||c(e,t))&&(t=e)}),void 0===t)throw new Error(\"Cannot calculate min of an empty array\");return t}var c=n(r(59)),f=o(\"min\",{\"Array | Matrix\":u,\"Array | Matrix, number | BigNumber\":function(e,t){return a(e,t.valueOf(),s)},\"...\":function(){return u(arguments)}});return f.toTex=\"\\\\min\\\\left(${args}\\\\right)\",f}var i=r(290),a=r(291);t.name=\"min\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(308));return i(\"range\",{\"...any\":function(e){var t=e.length-1,r=e[t];return\"boolean\"!=typeof r&&e.push(!0),a.apply(null,e)}})}t.name=\"range\",t.path=\"expression.transform\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){function a(e){return\"array\"===t.matrix?e:p(e)}function o(r,n){var i=l(r);if(!i)throw new SyntaxError('String \"'+r+'\" is no valid range');var o;return\"bignumber\"===t.number?(o=n?f:c,a(o(new e.BigNumber(i.start),new e.BigNumber(i.end),new e.BigNumber(i.step)))):(o=n?u:s,a(o(i.start,i.end,i.step)))}function s(e,t,r){var n=[],i=e;if(r>0)for(;t>i;)n.push(i),i+=r;else if(0>r)for(;i>t;)n.push(i),i+=r;return n}function u(e,t,r){var n=[],i=e;if(r>0)for(;t>=i;)n.push(i),i+=r;else if(0>r)for(;i>=t;)n.push(i),i+=r;return n}function c(e,t,r){var n=[],i=e;if(r.gt(m))for(;i.lt(t);)n.push(i),i=i.plus(r);else if(r.lt(m))for(;i.gt(t);)n.push(i),i=i.plus(r);return n}function f(e,t,r){var n=[],i=e;if(r.gt(m))for(;i.lte(t);)n.push(i),i=i.plus(r);else if(r.lt(m))for(;i.gte(t);)n.push(i),i=i.plus(r);return n}function l(e){var t=e.split(\":\"),r=t.map(function(e){return Number(e)}),n=r.some(function(e){return isNaN(e)});if(n)return null;switch(r.length){case 2:return{start:r[0],end:r[1],step:1};case 3:return{start:r[0],end:r[2],step:r[1]};default:return null}}var p=n(r(51)),m=new e.BigNumber(0),h=new e.BigNumber(1),g=i(\"range\",{string:o,\"string, boolean\":o,\"number, number\":function(e,t){return a(s(e,t,1))},\"number, number, number\":function(e,t,r){return a(s(e,t,r))},\"number, number, boolean\":function(e,t,r){return a(r?u(e,t,1):s(e,t,1))},\"number, number, number, boolean\":function(e,t,r,n){return a(n?u(e,t,r):s(e,t,r))},\"BigNumber, BigNumber\":function(e,t){return a(c(e,t,h))},\"BigNumber, BigNumber, BigNumber\":function(e,t,r){return a(c(e,t,r))},\"BigNumber, BigNumber, boolean\":function(e,t,r){return a(r?f(e,t,h):c(e,t,h))},\"BigNumber, BigNumber, BigNumber, boolean\":function(e,t,r,n){return a(n?f(e,t,r):c(e,t,r))}});return g.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",g}t.name=\"range\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(310));return a(\"subset\",{\"...any\":function(e){try{return o.apply(null,e)}catch(t){throw i(t)}}})}var i=r(278).transform;t.name=\"subset\",t.path=\"expression.transform\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,s){function u(e,t){if(!t||t.isIndex!==!0)throw new TypeError(\"Index expected\");if(1!=t.size().length)throw new o(t.size().length,1);var r=e.length;a(t.min()[0],r),a(t.max()[0],r);var n=t.dimension(0),i=\"\";return n.forEach(function(t){i+=e.charAt(t)}),i}function c(e,t,r,n){if(!t||t.isIndex!==!0)throw new TypeError(\"Index expected\");if(1!=t.size().length)throw new o(t.size().length,1);if(void 0!==n){if(\"string\"!=typeof n||1!==n.length)throw new TypeError(\"Single character expected as defaultValue\")}else n=\" \";var i=t.dimension(0),s=i.size()[0];if(s!=r.length)throw new o(i.size()[0],r.length);var u=e.length;a(t.min()[0]),a(t.max()[0]);for(var c=[],f=0;u>f;f++)c[f]=e.charAt(f);if(i.forEach(function(e,t){c[e]=r.charAt(t[0])}),c.length>u)for(f=u-1,s=c.length;s>f;f++)c[f]||(c[f]=n);return c.join(\"\")}var f=n(r(51)),l=s(\"subset\",{\"Array, Index\":function(e,t){var r=f(e),n=r.subset(t);return n&&n.valueOf()},\"Matrix, Index\":function(e,t){return e.subset(t)},\"string, Index\":u,\"Array, Index, any\":function(e,t,r){return f(i(e)).subset(t,r,void 0).valueOf()},\"Array, Index, any, any\":function(e,t,r,n){return f(i(e)).subset(t,r,n).valueOf()},\"Matrix, Index, any\":function(e,t,r){return e.clone().subset(t,r)},\"Matrix, Index, any, any\":function(e,t,r,n){return e.clone().subset(t,r,n)},\"string, Index, string\":c,\"string, Index, string, string\":c});return l.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",l}var i=r(3).clone,a=r(40).validateIndex,o=r(42);t.name=\"subset\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(e){if(!(this instanceof s))throw new SyntaxError(\"Constructor must be called with the new operator\");if(!e)throw new Error('Argument \"doc\" missing');this.doc=e}var u=n(r(273))();return s.prototype.type=\"Help\",s.prototype.isHelp=!0,s.prototype.toString=function(){var e=this.doc||{},t=\"\\n\";if(e.name&&(t+=\"Name: \"+e.name+\"\\n\\n\"),e.category&&(t+=\"Category: \"+e.category+\"\\n\\n\"),e.description&&(t+=\"Description:\\n \"+e.description+\"\\n\\n\"),e.syntax&&(t+=\"Syntax:\\n \"+e.syntax.join(\"\\n \")+\"\\n\\n\"),e.examples){t+=\"Examples:\\n\";for(var r=0;r<e.examples.length;r++){var n=e.examples[r];t+=\" \"+n+\"\\n\";var i;try{i=u.eval(n)}catch(o){i=o}i&&!i.isHelp&&(t+=\" \"+a.format(i,{precision:14})+\"\\n\")}t+=\"\\n\"}return e.seealso&&(t+=\"See also: \"+e.seealso.join(\", \")+\"\\n\"),t},s.prototype.toJSON=function(){var e=i.clone(this.doc);return e.mathjs=\"Help\",e},s.fromJSON=function(e){var t={};for(var r in e)\"mathjs\"!==r&&(t[r]=e[r]);return new s(t)},s.prototype.valueOf=s.prototype.toString,s}var i=r(3),a=r(23);t.name=\"Help\",t.path=\"type\",t.factory=n},function(e,t,r){e.exports=[r(313),r(341),r(373),r(389),r(399),r(404),r(407),r(412),r(421),r(431),r(437),r(445),r(486),r(488)]},function(e,t,r){e.exports=[r(314),r(316),r(336),r(338),r(340)]},function(e,t,r){\"use strict\";function n(e,t,n,i){var o=n(r(51)),s=n(r(315)),u=n(r(52)),c=n(r(295)),f=n(r(297)),l=n(r(302)),p=n(r(63)),m=n(r(48)),h=n(r(300)),g=e.SparseMatrix,v=e.DenseMatrix,d=e.Spa,y=i(\"lup\",{DenseMatrix:function(e){return x(e)},SparseMatrix:function(e){return w(e)},Array:function(e){var t=o(e),r=x(t);return{L:r.L.valueOf(),U:r.U.valueOf(),p:r.p}}}),x=function(e){var t,r,n,i=e._size[0],o=e._size[1],h=Math.min(i,o),g=a.clone(e._data),d=[],y=[i,h],x=[],w=[h,o],b=[];for(t=0;i>t;t++)b[t]=t;for(r=0;o>r;r++){if(r>0)for(t=0;i>t;t++){var N=Math.min(t,r),E=0;for(n=0;N>n;n++)E=u(E,f(g[t][n],g[n][r]));g[t][r]=l(g[t][r],E)}var M=r,A=0,_=0;for(t=r;i>t;t++){var O=g[t][r],T=s(O);p(T,A)&&(M=t,A=T,_=O)}if(r!==M&&(b[r]=[b[M],b[M]=b[r]][0],v._swapRows(r,M,g)),i>r)for(t=r+1;i>t;t++){var C=g[t][r];m(C,0)||(g[t][r]=c(g[t][r],_))}}for(r=0;o>r;r++)for(t=0;i>t;t++)0===r&&(o>t&&(x[t]=[]),d[t]=[]),r>t?(o>t&&(x[t][r]=g[t][r]),i>r&&(d[t][r]=0)):t!==r?(o>t&&(x[t][r]=0),i>r&&(d[t][r]=g[t][r])):(o>t&&(x[t][r]=g[t][r]),i>r&&(d[t][r]=1));var S=new v({data:d,size:y}),z=new v({data:x,size:w}),B=[];for(t=0,h=b.length;h>t;t++)B[b[t]]=t;return{L:S,U:z,p:B,toString:function(){return\"L: \"+this.L.toString()+\"\\nU: \"+this.U.toString()+\"\\nP: \"+this.p}}},w=function(e){var t,r,n,i=e._size[0],a=e._size[1],o=Math.min(i,a),u=e._values,l=e._index,v=e._ptr,y=[],x=[],w=[],b=[i,o],N=[],E=[],M=[],A=[o,a],_=[],O=[];for(t=0;i>t;t++)_[t]=t,O[t]=t;var T=function(e,t){var r=O[e],n=O[t];_[r]=t,_[n]=e,O[e]=n,O[t]=r};for(r=0;a>r;r++){var C=new d;i>r&&(w.push(y.length),y.push(1),x.push(r)),M.push(N.length);var S=v[r],z=v[r+1];for(n=S;z>n;n++)t=l[n],C.set(_[t],u[n]);r>0&&C.forEach(0,r-1,function(e,t){g._forEachRow(e,y,x,w,function(r,n){r>e&&C.accumulate(r,h(f(n,t)))})});var B=r,k=C.get(r),I=s(k);C.forEach(r+1,i-1,function(e,t){var r=s(t);p(r,I)&&(B=e,I=r,k=t)}),r!==B&&(g._swapRows(r,B,b[1],y,x,w),g._swapRows(r,B,A[1],N,E,M),C.swap(r,B),T(r,B)),C.forEach(0,i-1,function(e,t){r>=e?(N.push(t),E.push(e)):(t=c(t,k),m(t,0)||(y.push(t),x.push(e)))})}return M.push(N.length),w.push(y.length),{L:new g({values:y,index:x,ptr:w,size:b}),U:new g({values:N,index:E,ptr:M,size:A}),p:_,toString:function(){return\"L: \"+this.L.toString()+\"\\nU: \"+this.U.toString()+\"\\nP: \"+this.p}}};return y}var i=r(39),a=i.object;t.name=\"lup\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"abs\",{number:Math.abs,Complex:function(e){var t=Math.abs(e.re),r=Math.abs(e.im);if(1e3>t&&1e3>r)return Math.sqrt(t*t+r*r);if(t>=r){var n=r/t;return t*Math.sqrt(1+n*n)}var i=t/r;return r*Math.sqrt(1+i*i)},BigNumber:function(e){return e.abs()},Fraction:function(e){return e.abs()},\"Array | Matrix\":function(e){return i(e,a,!0)},Unit:function(e){var t=e.clone();return t.value=Math.abs(t.value),t}});return a.toTex=\"\\\\left|${args[0]}\\\\right|\",a}var i=r(19);t.name=\"abs\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(317)),s=n(r(328)),u=i(\"slu\",{\"SparseMatrix, number, number\":function(e,t,r){if(!o(t)||0>t||t>3)throw new Error(\"Symbolic Ordering and Analysis order must be an integer number in the interval [0, 3]\");if(0>r||r>1)throw new Error(\"Partial pivoting threshold must be a number from 0 to 1\");var n=a(t,e,!1),i=s(e,n,r);return{L:i.L,U:i.U,p:i.pinv,q:n.q,toString:function(){return\"L: \"+this.L.toString()+\"\\nU: \"+this.U.toString()+\"\\np: \"+this.p.toString()+(this.q?\"\\nq: \"+this.q.toString():\"\")+\"\\n\";\n}}}});return u}var i=r(39),a=i.number,o=a.isInteger;t.name=\"slu\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n){var i=n(r(318)),a=n(r(323)),o=n(r(324)),s=n(r(325)),u=n(r(326)),c=function(e,t,r){var n,c=t._ptr,l=t._size,p=l[1],m={};if(m.q=i(e,t),e&&!m.q)return null;if(r){var h=e?a(t,null,m.q,0):t;m.parent=o(h,1);var g=s(m.parent,p);if(m.cp=u(h,m.parent,g,1),h&&m.parent&&m.cp&&f(h,m))for(m.unz=0,n=0;p>n;n++)m.unz+=m.cp[n]}else m.unz=4*c[p]+p,m.lnz=m.unz;return m},f=function(e,t){var r=e._ptr,n=e._index,i=e._size,a=i[0],o=i[1];t.pinv=[],t.leftmost=[];var s,u,c,f,l,p=t.parent,m=t.pinv,h=t.leftmost,g=[],v=0,d=a,y=a+o,x=a+2*o;for(u=0;o>u;u++)g[d+u]=-1,g[y+u]=-1,g[x+u]=0;for(s=0;a>s;s++)h[s]=-1;for(u=o-1;u>=0;u--)for(f=r[u],l=r[u+1],c=f;l>c;c++)h[n[c]]=u;for(s=a-1;s>=0;s--)m[s]=-1,u=h[s],-1!=u&&(0===g[x+u]++&&(g[y+u]=s),g[v+s]=g[d+u],g[d+u]=s);for(t.lnz=0,t.m2=a,u=0;o>u;u++)if(s=g[d+u],t.lnz++,0>s&&(s=t.m2++),m[s]=u,!(--x[u]<=0)){t.lnz+=g[x+u];var w=p[u];-1!=w&&(0===g[x+w]&&(g[y+w]=g[y+u]),g[v+g[y+u]]=g[d+w],g[d+w]=g[v+s],g[x+w]+=g[x+u])}for(s=0;a>s;s++)m[s]<0&&(m[s]=u++);return!0};return c}t.name=\"cs_sqr\",t.path=\"sparse\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n){var i=n(r(319)),a=n(r(320)),o=n(r(321)),s=n(r(50)),u=n(r(296)),c=n(r(322)),f=function(e,t){if(!t||0>=e||e>3)return null;var r=t._size,n=r[0],s=r[1],u=0,c=Math.max(16,10*Math.sqrt(s));c=Math.min(s-2,c);var f=l(e,t,n,s,c);a(f,g,null);for(var v,d,y,x,w,b,N,E,M,A,_,O,T,C,S,z,B=f._index,k=f._ptr,I=k[s],R=[],P=[],U=0,q=s+1,L=2*(s+1),F=3*(s+1),D=4*(s+1),$=5*(s+1),j=6*(s+1),G=7*(s+1),H=R,Z=p(s,k,P,U,F,H,L,G,q,j,D,$),V=m(s,k,P,$,D,j,c,q,F,H,L),Y=0;s>V;){for(y=-1;s>Y&&-1==(y=P[F+Y]);Y++);-1!=P[L+y]&&(H[P[L+y]]=-1),P[F+Y]=P[L+y];var W=P[D+y],X=P[q+y];V+=X;var J=0;P[q+y]=-X;var K=k[y],Q=0===W?K:I,ee=Q;for(x=1;W+1>=x;x++){for(x>W?(b=y,N=K,E=P[U+y]-W):(b=B[K++],N=k[b],E=P[U+b]),w=1;E>=w;w++)v=B[N++],(M=P[q+v])<=0||(J+=M,P[q+v]=-M,B[ee++]=v,-1!=P[L+v]&&(H[P[L+v]]=H[v]),-1!=H[v]?P[L+H[v]]=P[L+v]:P[F+P[$+v]]=P[L+v]);b!=y&&(k[b]=i(y),P[j+b]=0)}for(0!==W&&(I=ee),P[$+y]=J,k[y]=Q,P[U+y]=ee-Q,P[D+y]=-2,Z=h(Z,u,j,s),A=Q;ee>A;A++)if(v=B[A],!((_=P[D+v])<=0)){M=-P[q+v];var te=Z-M;for(K=k[v],O=k[v]+_-1;O>=K;K++)b=B[K],P[j+b]>=Z?P[j+b]-=M:0!==P[j+b]&&(P[j+b]=P[$+b]+te)}for(A=Q;ee>A;A++){for(v=B[A],O=k[v],T=O+P[D+v]-1,C=O,S=0,z=0,K=O;T>=K;K++)if(b=B[K],0!==P[j+b]){var re=P[j+b]-Z;re>0?(z+=re,B[C++]=b,S+=b):(k[b]=i(y),P[j+b]=0)}P[D+v]=C-O+1;var ne=C,ie=O+P[U+v];for(K=T+1;ie>K;K++){d=B[K];var ae=P[q+d];0>=ae||(z+=ae,B[C++]=d,S+=d)}0===z?(k[v]=i(y),M=-P[q+v],J-=M,X+=M,V+=M,P[q+v]=0,P[D+v]=-1):(P[$+v]=Math.min(P[$+v],z),B[C]=B[ne],B[ne]=B[O],B[O]=y,P[U+v]=C-O+1,S=(0>S?-S:S)%s,P[L+v]=P[G+S],P[G+S]=v,H[v]=S)}for(P[$+y]=J,u=Math.max(u,J),Z=h(Z+u,u,j,s),A=Q;ee>A;A++)if(v=B[A],!(P[q+v]>=0))for(S=H[v],v=P[G+S],P[G+S]=-1;-1!=v&&-1!=P[L+v];v=P[L+v],Z++){for(E=P[U+v],_=P[D+v],K=k[v]+1;K<=k[v]+E-1;K++)P[j+B[K]]=Z;var oe=v;for(d=P[L+v];-1!=d;){var se=P[U+d]===E&&P[D+d]===_;for(K=k[d]+1;se&&K<=k[d]+E-1;K++)P[j+B[K]]!=Z&&(se=0);se?(k[d]=i(v),P[q+v]+=P[q+d],P[q+d]=0,P[D+d]=-1,d=P[L+d],P[L+oe]=d):(oe=d,d=P[L+d])}}for(K=Q,A=Q;ee>A;A++)v=B[A],(M=-P[q+v])<=0||(P[q+v]=M,z=P[$+v]+J-M,z=Math.min(z,s-V-M),-1!=P[F+z]&&(H[P[F+z]]=v),P[L+v]=P[F+z],H[v]=-1,P[F+z]=v,Y=Math.min(Y,z),P[$+v]=z,B[K++]=v);P[q+y]=X,0===(P[U+y]=K-Q)&&(k[y]=-1,P[j+y]=0),0!==W&&(I=K)}for(v=0;s>v;v++)k[v]=i(k[v]);for(d=0;s>=d;d++)P[F+d]=-1;for(d=s;d>=0;d--)P[q+d]>0||(P[L+d]=P[F+k[d]],P[F+k[d]]=d);for(b=s;b>=0;b--)P[q+b]<=0||-1!=k[b]&&(P[L+b]=P[F+k[b]],P[F+k[b]]=b);for(y=0,v=0;s>=v;v++)-1==k[v]&&(y=o(v,y,P,F,L,R,j));return R.splice(R.length-1,1),R},l=function(e,t,r,n,i){var a=c(t);if(1===e&&n===r)return s(t,a);if(2==e){for(var o=a._index,f=a._ptr,l=0,p=0;r>p;p++){var m=f[p];if(f[p]=l,!(f[p+1]-m>i))for(var h=f[p+1];h>m;m++)o[l++]=o[m]}return f[r]=l,t=c(a),u(a,t)}return u(a,t)},p=function(e,t,r,n,i,a,o,s,u,c,f,l){for(var p=0;e>p;p++)r[n+p]=t[p+1]-t[p];r[n+e]=0;for(var m=0;e>=m;m++)r[i+m]=-1,a[m]=-1,r[o+m]=-1,r[s+m]=-1,r[u+m]=1,r[c+m]=1,r[f+m]=0,r[l+m]=r[n+m];var g=h(0,0,c,e);return r[f+e]=-2,t[e]=-1,r[c+e]=0,g},m=function(e,t,r,n,a,o,s,u,c,f,l){for(var p=0,m=0;e>m;m++){var h=r[n+m];if(0===h)r[a+m]=-2,p++,t[m]=-1,r[o+m]=0;else if(h>s)r[u+m]=0,r[a+m]=-1,p++,t[m]=i(e),r[u+e]++;else{var g=r[c+h];-1!=g&&(f[g]=m),r[l+m]=r[c+h],r[c+h]=m}}return p},h=function(e,t,r,n){if(2>e||0>e+t){for(var i=0;n>i;i++)0!==r[i]&&(r[i]=1);e=2}return e},g=function(e,t){return e!=t};return f}t.name=\"cs_amd\",t.path=\"sparse\",t.factory=n},function(e,t){\"use strict\";function r(){var e=function(e){return-e-2};return e}t.name=\"cs_flip\",t.path=\"sparse\",t.factory=r},function(e,t){\"use strict\";function r(){var e=function(e,t,r){for(var n=e._values,i=e._index,a=e._ptr,o=e._size,s=o[1],u=0,c=0;s>c;c++){var f=a[c];for(a[c]=u;f<a[c+1];f++)t(i[f],c,n?n[f]:1,r)&&(i[u]=i[f],n&&(n[u]=n[f]),u++)}return a[s]=u,i.splice(u,i.length-u),n&&n.splice(u,n.length-u),u};return e}t.name=\"cs_fkeep\",t.path=\"sparse\",t.factory=r},function(e,t){\"use strict\";function r(){var e=function(e,t,r,n,i,a,o){var s=0;for(r[o]=e;s>=0;){var u=r[o+s],c=r[n+u];-1==c?(s--,a[t++]=u):(r[n+u]=r[i+c],++s,r[o+s]=c)}return t};return e}t.name=\"cs_tdfs\",t.path=\"sparse\",t.factory=r},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=r(30),u=n(r(51)),c=e.DenseMatrix,f=e.SparseMatrix,l=o(\"transpose\",{Array:function(e){return l(u(e)).valueOf()},Matrix:function(e){var t,r=e.size();switch(r.length){case 1:t=e.clone();break;case 2:var n=r[0],i=r[1];if(0===i)throw new RangeError(\"Cannot transpose a 2D matrix with no columns (size: \"+a(r)+\")\");switch(e.storage()){case\"dense\":t=p(e,n,i);break;case\"sparse\":t=m(e,n,i)}break;default:throw new RangeError(\"Matrix must be a vector or two dimensional (size: \"+a(this._size)+\")\")}return t},any:function(e){return i(e)}}),p=function(e,t,r){for(var n,a=e._data,o=[],s=0;r>s;s++){n=o[s]=[];for(var u=0;t>u;u++)n[u]=i(a[u][s])}return new c({data:o,size:[r,t],datatype:e._datatype})},m=function(e,t,r){for(var n=e._values,a=e._index,o=e._ptr,s=n?[]:void 0,u=[],c=[],l=[],p=0;t>p;p++)l[p]=0;var m,h,g;for(m=0,h=a.length;h>m;m++)l[a[m]]++;for(var v=0,d=0;t>d;d++)c.push(v),v+=l[d],l[d]=c[d];for(c.push(v),g=0;r>g;g++)for(var y=o[g],x=o[g+1],w=y;x>w;w++){var b=l[a[w]]++;u[b]=g,n&&(s[b]=i(n[w]))}return new f({values:s,index:u,ptr:c,size:[r,t],datatype:e._datatype})};return l.toTex=\"\\\\left(${args[0]}\\\\right)\"+s.operators.transpose,l}var i=r(3).clone,a=r(23).format;t.name=\"transpose\",t.factory=n},function(e,t){\"use strict\";function r(e){var t=e.SparseMatrix,r=function(e,r,n,i){for(var a=e._values,o=e._index,s=e._ptr,u=e._size,c=e._datatype,f=u[0],l=u[1],p=i&&e._values?[]:null,m=[],h=[],g=0,v=0;l>v;v++){h[v]=g;for(var d=n?n[v]:v,y=s[d],x=s[d+1],w=y;x>w;w++){var b=r?r[o[w]]:o[w];m[g]=b,p&&(p[g]=a[w]),g++}}return h[l]=g,new t({values:p,index:m,ptr:h,size:[f,l],datatype:c})};return r}t.name=\"cs_permute\",t.path=\"sparse\",t.factory=r},function(e,t){\"use strict\";function r(){var e=function(e,t){if(!e)return null;var r,n,i=e._index,a=e._ptr,o=e._size,s=o[0],u=o[1],c=[],f=[],l=0,p=u;if(t)for(r=0;s>r;r++)f[p+r]=-1;for(var m=0;u>m;m++){c[m]=-1,f[l+m]=-1;for(var h=a[m],g=a[m+1],v=h;g>v;v++){var d=i[v];for(r=t?f[p+d]:d;-1!=r&&m>r;r=n)n=f[l+r],f[l+r]=m,-1==n&&(c[r]=m);t&&(f[p+d]=m)}}return c};return e}t.name=\"cs_etree\",t.path=\"sparse\",t.factory=r},function(e,t,r){\"use strict\";function n(e,t,n){var i=n(r(321)),a=function(e,t){if(!e)return null;var r,n=0,a=[],o=[],s=0,u=t,c=2*t;for(r=0;t>r;r++)o[s+r]=-1;for(r=t-1;r>=0;r--)-1!=e[r]&&(o[u+r]=o[s+e[r]],o[s+e[r]]=r);for(r=0;t>r;r++)-1==e[r]&&(n=i(r,n,o,s,u,a,c));return a};return a}t.name=\"cs_post\",t.path=\"sparse\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n){var i=n(r(322)),a=n(r(327)),o=function(e,t,r,n){if(!e||!t||!r)return null;var o,s,u,c,f,l,p,m=e._size,h=m[0],g=m[1],v=4*g+(n?g+h+1:0),d=[],y=0,x=g,w=2*g,b=3*g,N=4*g,E=5*g+1;for(u=0;v>u;u++)d[u]=-1;var M=[],A=i(e),_=A._index,O=A._ptr;for(u=0;g>u;u++)for(s=r[u],M[s]=-1==d[b+s]?1:0;-1!=s&&-1==d[b+s];s=t[s])d[b+s]=u;if(n){for(u=0;g>u;u++)d[r[u]]=u;for(o=0;h>o;o++){for(u=g,l=O[o],p=O[o+1],f=l;p>f;f++)u=Math.min(u,d[_[f]]);d[E+o]=d[N+u],d[N+u]=o}}for(o=0;g>o;o++)d[y+o]=o;for(u=0;g>u;u++){for(s=r[u],-1!=t[s]&&M[t[s]]--,c=n?d[N+u]:s;-1!=c;c=n?d[E+c]:-1)for(f=O[c];f<O[c+1];f++){o=_[f];var T=a(o,s,d,b,x,w,y);T.jleaf>=1&&M[s]++,2==T.jleaf&&M[T.q]--}-1!=t[s]&&(d[y+s]=t[s])}for(s=0;g>s;s++)-1!=t[s]&&(M[t[s]]+=M[s]);return M};return o}t.name=\"cs_counts\",t.path=\"sparse\",t.factory=n},function(e,t){\"use strict\";function r(){var e=function(e,t,r,n,i,a,o){var s,u,c,f,l=0;if(t>=e||r[n+t]<=r[i+e])return-1;if(r[i+e]=r[n+t],c=r[a+e],r[a+e]=t,-1===c)l=1,f=e;else{for(l=2,f=c;f!=r[o+f];f=r[o+f]);for(s=c;s!=f;s=u)u=r[o+s],r[o+s]=f}return{jleaf:l,q:f}};return e}t.name=\"cs_leaf\",t.path=\"sparse\",t.factory=r},function(e,t,r){\"use strict\";function n(e,t,n){var i=n(r(315)),a=n(r(295)),o=n(r(296)),s=n(r(63)),u=n(r(329)),c=n(r(330)),f=e.SparseMatrix,l=function(e,t,r){if(!e)return null;var n,l=e._size,p=l[1],m=100,h=100;t&&(n=t.q,m=t.lnz||m,h=t.unz||h);var g,v,d=[],y=[],x=[],w=new f({values:d,index:y,ptr:x,size:[p,p]}),b=[],N=[],E=[],M=new f({values:b,index:N,ptr:E,size:[p,p]}),A=[],_=[],O=[];for(g=0;p>g;g++)_[g]=0,A[g]=-1,x[g+1]=0;m=0,h=0;for(var T=0;p>T;T++){x[T]=m,E[T]=h;var C=n?n[T]:T,S=c(w,e,C,O,_,A,1),z=-1,B=-1;for(v=S;p>v;v++)if(g=O[v],A[g]<0){var k=i(_[g]);s(k,B)&&(B=k,z=g)}else N[h]=A[g],b[h++]=_[g];if(-1==z||0>=B)return null;A[C]<0&&u(i(_[C]),o(B,r))&&(z=C);var I=_[z];for(N[h]=T,b[h++]=I,A[z]=T,y[m]=z,d[m++]=1,v=S;p>v;v++)g=O[v],A[g]<0&&(y[m]=g,d[m++]=a(_[g],I)),_[g]=0}for(x[p]=m,E[p]=h,v=0;m>v;v++)y[v]=A[y[v]];return d.splice(m,d.length-m),y.splice(m,y.length-m),b.splice(h,b.length-h),N.splice(h,N.length-h),{L:w,U:M,pinv:A}};return l}t.name=\"cs_lu\",t.path=\"sparse\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(51)),s=n(r(60)),u=n(r(61)),c=n(r(62)),f=n(r(56)),l=n(r(57)),p=r(30),m=a(\"largerEq\",{\"boolean, boolean\":function(e,t){return e>=t},\"number, number\":function(e,r){return e>=r||i(e,r,t.epsilon)},\"BigNumber, BigNumber\":function(e,t){return e.gte(t)},\"Fraction, Fraction\":function(e,t){return-1!==e.compare(t)},\"Complex, Complex\":function(){throw new TypeError(\"No ordering relation is defined for complex numbers\")},\"Unit, Unit\":function(e,r){if(!e.equalBase(r))throw new Error(\"Cannot compare units with different base\");return e.value>=r.value||i(e.value,r.value,t.epsilon)},\"string, string\":function(e,t){return e>=t},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=u(e,t,m);break;default:r=s(t,e,m,!0)}break;default:switch(t.storage()){case\"sparse\":r=s(e,t,m,!1);break;default:r=f(e,t,m)}}return r},\"Array, Array\":function(e,t){return m(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return m(o(e),t)},\"Matrix, Array\":function(e,t){return m(e,o(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=c(e,t,m,!1);break;default:r=l(e,t,m,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=c(t,e,m,!0);break;default:r=l(t,e,m,!0)}return r},\"Array, any\":function(e,t){return l(o(e),t,m,!1).valueOf()},\"any, Array\":function(e,t){return l(o(t),e,m,!0).valueOf()}});return m.toTex=\"\\\\left(${args[0]}\"+p.operators.largerEq+\"${args[1]}\\\\right)\",m}var i=r(6).nearlyEqual;t.name=\"largerEq\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n){var i=n(r(295)),a=n(r(296)),o=n(r(302)),s=n(r(331)),u=function(e,t,r,n,u,c,f){var l,p,m,h,g=e._values,v=e._index,d=e._ptr,y=e._size,x=y[1],w=t._values,b=t._index,N=t._ptr,E=s(e,t,r,n,c);for(l=E;x>l;l++)u[n[l]]=0;for(p=N[r],m=N[r+1],l=p;m>l;l++)u[b[l]]=w[l];for(var M=E;x>M;M++){var A=n[M],_=c?c[A]:A;if(!(0>_))for(p=d[_],m=d[_+1],u[A]=i(u[A],g[f?p:m-1]),l=f?p+1:p,h=f?m:m-1;h>l;l++){var O=v[l];u[O]=o(u[O],a(g[l],u[A]))}}return E};return u}t.name=\"cs_spsolve\",t.path=\"sparse\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n){var i=n(r(332)),a=n(r(333)),o=n(r(334)),s=function(e,t,r,n,s){var u,c,f,l=e._ptr,p=e._size,m=t._index,h=t._ptr,g=p[1],v=g;for(c=h[r],f=h[r+1],u=c;f>u;u++){var d=m[u];a(l,d)||(v=i(d,e,v,n,s))}for(u=v;g>u;u++)o(l,n[u]);return v};return s}t.name=\"cs_reach\",t.path=\"sparse\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n){var i=n(r(333)),a=n(r(334)),o=n(r(335)),s=function(e,t,r,n,s){var u,c,f,l=t._index,p=t._ptr,m=t._size,h=m[1],g=0;for(n[0]=e;g>=0;){e=n[g];var v=s?s[e]:e;i(p,e)||(a(p,e),n[h+g]=0>v?0:o(p[v]));var d=1;for(c=n[h+g],f=0>v?0:o(p[v+1]);f>c;c++)if(u=l[c],!i(p,u)){n[h+g]=c,n[++g]=u,d=0;break}d&&(g--,n[--r]=e)}return r};return s}t.name=\"cs_dfs\",t.path=\"sparse\",t.factory=n},function(e,t){\"use strict\";function r(){var e=function(e,t){return e[t]<0};return e}t.name=\"cs_marked\",t.path=\"sparse\",t.factory=r},function(e,t,r){\"use strict\";function n(e,t,n){var i=n(r(319)),a=function(e,t){e[t]=i(e[t])};return a}t.name=\"cs_mark\",t.path=\"sparse\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n){var i=n(r(319)),a=function(e){return 0>e?i(e):e};return a}t.name=\"cs_unflip\",t.path=\"sparse\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(51)),o=n(r(295)),s=n(r(297)),u=n(r(302)),c=n(r(48)),f=n(r(337)),l=e.DenseMatrix,p=i(\"lsolve\",{\"SparseMatrix, Array | Matrix\":function(e,t){return h(e,t)},\"DenseMatrix, Array | Matrix\":function(e,t){return m(e,t)},\"Array, Array | Matrix\":function(e,t){var r=a(e),n=m(r,t);return n.valueOf()}}),m=function(e,t){t=f(e,t,!0);for(var r=t._data,n=e._size[0],i=e._size[1],a=[],p=e._data,m=0;i>m;m++){var h,g=r[m][0]||0;if(c(g,0))h=0;else{var v=p[m][m];if(c(v,0))throw new Error(\"Linear system cannot be solved since matrix is singular\");h=o(g,v);for(var d=m+1;n>d;d++)r[d]=[u(r[d][0]||0,s(h,p[d][m]))]}a[m]=[h]}return new l({data:a,size:[n,1]})},h=function(e,t){t=f(e,t,!0);for(var r,n,i=t._data,a=e._size[0],p=e._size[1],m=e._values,h=e._index,g=e._ptr,v=[],d=0;p>d;d++){var y=i[d][0]||0;if(c(y,0))v[d]=[0];else{var x=0,w=[],b=[],N=g[d+1];for(n=g[d];N>n;n++)r=h[n],r===d?x=m[n]:r>d&&(w.push(m[n]),b.push(r));if(c(x,0))throw new Error(\"Linear system cannot be solved since matrix is singular\");var E=o(y,x);for(n=0,N=b.length;N>n;n++)r=b[n],i[r]=[u(i[r][0]||0,s(E,w[n]))];v[d]=[E]}}return new l({data:v,size:[a,1]})};return p}t.name=\"lsolve\",t.factory=n},function(e,t,r){\"use strict\";function n(e){var t=e.DenseMatrix,r=function(e,r,n){var i=e.size();if(2!==i.length)throw new RangeError(\"Matrix must be two dimensional (size: \"+a.format(i)+\")\");var u=i[0],c=i[1];if(u!==c)throw new RangeError(\"Matrix must be square (size: \"+a.format(i)+\")\");var f,l,p;if(r&&r.isMatrix===!0){var m=r.size();if(1===m.length){if(m[0]!==u)throw new RangeError(\"Dimension mismatch. Matrix columns must match vector length.\");for(f=[],p=r._data,l=0;u>l;l++)f[l]=[p[l]];return new t({data:f,size:[u,1],datatype:r._datatype})}if(2===m.length){if(m[0]!==u||1!==m[1])throw new RangeError(\"Dimension mismatch. Matrix columns must match vector length.\");if(r.isDenseMatrix===!0){if(n){for(f=[],p=r._data,l=0;u>l;l++)f[l]=[p[l][0]];return new t({data:f,size:[u,1],datatype:r._datatype})}return r}for(f=[],l=0;u>l;l++)f[l]=[0];for(var h=r._values,g=r._index,v=r._ptr,d=v[1],y=v[0];d>y;y++)l=g[y],f[l][0]=h[y];return new t({data:f,size:[u,1],datatype:r._datatype})}throw new RangeError(\"Dimension mismatch. Matrix columns must match vector length.\")}if(s(r)){var x=o.size(r);if(1===x.length){if(x[0]!==u)throw new RangeError(\"Dimension mismatch. Matrix columns must match vector length.\");for(f=[],l=0;u>l;l++)f[l]=[r[l]];return new t({data:f,size:[u,1]})}if(2===x.length){if(x[0]!==u||1!==x[1])throw new RangeError(\"Dimension mismatch. Matrix columns must match vector length.\");for(f=[],l=0;u>l;l++)f[l]=[r[l][0]];return new t({data:f,size:[u,1]})}throw new RangeError(\"Dimension mismatch. Matrix columns must match vector length.\")}};return r}var i=r(39),a=i.string,o=i.array,s=Array.isArray;t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(51)),s=n(r(314)),u=n(r(316)),c=n(r(339)),f=n(r(337)),l=n(r(340)),p=n(r(336)),m=a(\"lusolve\",{\"Array, Array | Matrix\":function(e,t){e=o(e);var r=s(e),n=g(r.L,r.U,r.p,null,t);return n.valueOf()},\"DenseMatrix, Array | Matrix\":function(e,t){var r=s(e);return g(r.L,r.U,r.p,null,t)},\"SparseMatrix, Array | Matrix\":function(e,t){var r=s(e);return g(r.L,r.U,r.p,null,t)},\"SparseMatrix, Array | Matrix, number, number\":function(e,t,r,n){var i=u(e,r,n);return g(i.L,i.U,i.p,i.q,t)},\"Object, Array | Matrix\":function(e,t){return g(e.L,e.U,e.p,e.q,t)}}),h=function(e){if(e&&e.isMatrix===!0)return e;if(i(e))return o(e);throw new TypeError(\"Invalid Matrix LU decomposition\")},g=function(e,t,r,n,i){e=h(e),t=h(t),i=f(e,i,!1),r&&(i._data=c(r,i._data));var a=p(e,i),o=l(t,a);return n&&(o._data=c(n,o._data)),o};return m}var i=Array.isArray;t.name=\"lusolve\",t.factory=n},function(e,t){\"use strict\";function r(){var e=function(e,t,r){var n,r=t.length,i=[];if(e)for(n=0;r>n;n++)i[e[n]]=t[n];else for(n=0;r>n;n++)i[n]=t[n];return i};return e}t.name=\"cs_ipvec\",t.path=\"sparse\",t.factory=r},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(51)),o=n(r(295)),s=n(r(297)),u=n(r(302)),c=n(r(48)),f=n(r(337)),l=e.DenseMatrix,p=i(\"usolve\",{\"SparseMatrix, Array | Matrix\":function(e,t){return h(e,t)},\"DenseMatrix, Array | Matrix\":function(e,t){return m(e,t)},\"Array, Array | Matrix\":function(e,t){var r=a(e),n=m(r,t);return n.valueOf()}}),m=function(e,t){t=f(e,t,!0);for(var r=t._data,n=e._size[0],i=e._size[1],a=[],p=e._data,m=i-1;m>=0;m--){var h,g=r[m][0]||0;if(c(g,0))h=0;else{var v=p[m][m];if(c(v,0))throw new Error(\"Linear system cannot be solved since matrix is singular\");h=o(g,v);for(var d=m-1;d>=0;d--)r[d]=[u(r[d][0]||0,s(h,p[d][m]))]}a[m]=[h]}return new l({data:a,size:[n,1]})},h=function(e,t){t=f(e,t,!0);for(var r,n,i=t._data,a=e._size[0],p=e._size[1],m=e._values,h=e._index,g=e._ptr,v=[],d=p-1;d>=0;d--){var y=i[d][0]||0;if(c(y,0))v[d]=[0];else{var x=0,w=[],b=[],N=g[d],E=g[d+1];for(n=E-1;n>=N;n--)r=h[n],r===d?x=m[n]:d>r&&(w.push(m[n]),b.push(r));if(c(x,0))throw new Error(\"Linear system cannot be solved since matrix is singular\");var M=o(y,x);for(n=0,E=b.length;E>n;n++)r=b[n],i[r]=[u(i[r][0],s(M,w[n]))];v[d]=[M]}}return new l({data:v,size:[a,1]})};return p}t.name=\"usolve\",t.factory=n},function(e,t,r){e.exports=[r(315),r(50),r(52),r(342),r(344),r(345),r(294),r(346),r(348),r(350),r(343),r(353),r(354),r(355),r(356),r(359),r(352),r(362),r(363),r(296),r(364),r(366),r(351),r(367),r(369),r(357),r(370),r(302),r(300),r(371),r(372)]},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e){if(0===e)return e;var t,r=0>e;return r&&(e=-e),isFinite(e)?(t=Math.exp(Math.log(e)/3),t=(e/(t*t)+2*t)/3):t=e,r?-t:t}function s(r,n){var i=r.toPolar(),a=l(new e.Complex(o(i.r),0),p(new e.Complex(0,i.phi/3)));if(n){var s=[a,l(new e.Complex(o(i.r),0),p(new e.Complex(0,i.phi/3+2*Math.PI/3))),l(new e.Complex(o(i.r),0),p(new e.Complex(0,i.phi/3-2*Math.PI/3)))];return\"array\"===t.matrix?s:f(s)}return a}function u(e){if(e.isZero())return e;var t,r=e.isNegative();return r&&(e=e.neg()),e.isFinite()?(t=e.ln().div(3).exp(),t=e.div(t.times(t)).plus(t.times(2)).div(3)):t=1/0,r?t.neg():t}function c(e){var t=e.value<0;t&&(e.value=-e.value);var r=e.pow(1/3);return t&&(r.value=-r.value),r}var f=n(r(51)),l=a.find(n(r(297)),[\"Complex,Complex\"]),p=a.find(n(r(343)),[\"Complex\"]),m=a(\"cbrt\",{number:o,Complex:s,\"Complex, boolean\":s,BigNumber:u,Unit:c,\"Array | Matrix\":function(e){return i(e,m,!0)}});return m.toTex=\"\\\\sqrt[3]{${args[0]}}\",m}var i=r(19);t.name=\"cbrt\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"exp\",{number:Math.exp,Complex:function(t){var r=Math.exp(t.re);return new e.Complex(r*Math.cos(t.im),r*Math.sin(t.im))},BigNumber:function(e){return e.exp()},\"Array | Matrix\":function(e){return i(e,a)}});return a.toTex=\"\\\\exp\\\\left(${args[0]}\\\\right)\",a}var i=r(19);t.name=\"exp\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"ceil\",{number:Math.ceil,Complex:function(t){return new e.Complex(Math.ceil(t.re),Math.ceil(t.im))},BigNumber:function(e){return e.ceil()},Fraction:function(e){return e.ceil()},\"Array | Matrix\":function(e){return i(e,a,!0)}});return a.toTex=\"\\\\left\\\\lceil${args[0]}\\\\right\\\\rceil\",a}var i=r(19);t.name=\"ceil\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=a.find(n(r(297)),[\"Complex,Complex\"]),s=a(\"cube\",{number:function(e){return e*e*e},Complex:function(e){return o(o(e,e),e)},BigNumber:function(e){return e.times(e).times(e)},Fraction:function(e){return e.mul(e).mul(e)},\"Array | Matrix\":function(e){return i(e,s,!0)},Unit:function(e){return e.pow(3)}});return s.toTex=\"\\\\left(${args[0]}\\\\right)^3\",s}var i=r(19);t.name=\"cube\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(51)),o=n(r(295)),s=r(30),u=n(r(347)),c=n(r(60)),f=n(r(61)),l=n(r(298)),p=n(r(62)),m=n(r(56)),h=n(r(57)),g=i(\"dotDivide\",{\"any, any\":o,\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=f(e,t,o,!1);break;default:r=u(t,e,o,!0)}break;default:switch(t.storage()){case\"sparse\":r=c(e,t,o,!1);break;default:r=m(e,t,o)}}return r},\"Array, Array\":function(e,t){return g(a(e),a(t)).valueOf()},\"Array, Matrix\":function(e,t){return g(a(e),t)},\"Matrix, Array\":function(e,t){return g(e,a(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=l(e,t,o,!1);break;default:r=h(e,t,o,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=p(t,e,o,!0);break;default:r=h(t,e,o,!0)}return r},\"Array, any\":function(e,t){return h(a(e),t,o,!1).valueOf()},\"any, Array\":function(e,t){return h(a(t),e,o,!0).valueOf()}});return g.toTex=\"\\\\left(${args[0]}\"+s.operators.dotDivide+\"${args[1]}\\\\right)\",g}t.name=\"dotDivide\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(48)),s=e.SparseMatrix,u=function(e,t,r,n){var u=e._data,c=e._size,f=e._datatype,l=t._values,p=t._index,m=t._ptr,h=t._size,g=t._datatype;if(c.length!==h.length)throw new i(c.length,h.length);if(c[0]!==h[0]||c[1]!==h[1])throw new RangeError(\"Dimension mismatch. Matrix A (\"+c+\") must match Matrix B (\"+h+\")\");if(!l)throw new Error(\"Cannot perform operation on Dense Matrix and Pattern Sparse Matrix\");var v,d=c[0],y=c[1],x=o,w=0,b=r;\"string\"==typeof f&&f===g&&(v=f,x=a.find(o,[v,v]),w=a.convert(0,v),b=a.find(r,[v,v]));for(var N=[],E=[],M=[],A=0;y>A;A++){M[A]=E.length;for(var _=m[A],O=m[A+1],T=_;O>T;T++){var C=p[T],S=n?b(l[T],u[C][A]):b(u[C][A],l[T]);x(S,w)||(E.push(C),N.push(S))}}return M[y]=E.length,new s({values:N,index:E,ptr:M,size:[d,y],datatype:v})};return u}var i=r(42);t.name=\"algorithm02\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(51)),o=n(r(297)),s=r(30),u=n(r(347)),c=n(r(349)),f=n(r(298)),l=n(r(56)),p=n(r(57)),m=i(\"dotMultiply\",{\"any, any\":o,\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=c(e,t,o,!1);break;default:r=u(t,e,o,!0)}break;default:switch(t.storage()){case\"sparse\":r=u(e,t,o,!1);break;default:r=l(e,t,o)}}return r},\"Array, Array\":function(e,t){return m(a(e),a(t)).valueOf()},\"Array, Matrix\":function(e,t){return m(a(e),t)},\"Matrix, Array\":function(e,t){return m(e,a(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=f(e,t,o,!1);break;default:r=p(e,t,o,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=f(t,e,o,!0);break;default:r=p(t,e,o,!0)}return r},\"Array, any\":function(e,t){return p(a(e),t,o,!1).valueOf()},\"any, Array\":function(e,t){return p(a(t),e,o,!0).valueOf()}});return m.toTex=\"\\\\left(${args[0]}\"+s.operators.dotMultiply+\"${args[1]}\\\\right)\",m}t.name=\"dotMultiply\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(48)),s=e.SparseMatrix,u=function(e,t,r){var n=e._values,u=e._index,c=e._ptr,f=e._size,l=e._datatype,p=t._values,m=t._index,h=t._ptr,g=t._size,v=t._datatype;if(f.length!==g.length)throw new i(f.length,g.length);if(f[0]!==g[0]||f[1]!==g[1])throw new RangeError(\"Dimension mismatch. Matrix A (\"+f+\") must match Matrix B (\"+g+\")\");var d,y=f[0],x=f[1],w=o,b=0,N=r;\"string\"==typeof l&&l===v&&(d=l,w=a.find(o,[d,d]),b=a.convert(0,d),N=a.find(r,[d,d]));var E,M,A,_,O,T=n&&p?[]:void 0,C=[],S=[],z=new s({values:T,index:C,ptr:S,size:[y,x],datatype:d}),B=T?[]:void 0,k=[];for(M=0;x>M;M++){S[M]=C.length;var I=M+1;if(B)for(_=h[M],O=h[M+1],A=_;O>A;A++)E=m[A],k[E]=I,B[E]=p[A];for(_=c[M],O=c[M+1],A=_;O>A;A++)if(E=u[A],B){var R=k[E]===I?B[E]:b,P=N(n[A],R);w(P,b)||(C.push(E),T.push(P))}else C.push(E)}return S[x]=C.length,z};return u}var i=r(42);t.name=\"algorithm09\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(51)),o=n(r(351)),s=r(30),u=n(r(60)),c=n(r(61)),f=n(r(298)),l=n(r(62)),p=n(r(56)),m=n(r(57)),h=i(\"dotPow\",{\"any, any\":o,\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=c(e,t,o,!1);break;default:r=u(t,e,o,!0)}break;default:switch(t.storage()){case\"sparse\":r=u(e,t,o,!1);break;default:r=p(e,t,o)}}return r},\"Array, Array\":function(e,t){return h(a(e),a(t)).valueOf()},\"Array, Matrix\":function(e,t){return h(a(e),t)},\"Matrix, Array\":function(e,t){return h(e,a(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=f(e,t,h,!1);break;default:r=m(e,t,h,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=l(t,e,h,!0);break;default:r=m(t,e,h,!0)}return r},\"Array, any\":function(e,t){return m(a(e),t,h,!1).valueOf()},\"any, Array\":function(e,t){return m(a(t),e,h,!0).valueOf()}});return h.toTex=\"\\\\left(${args[0]}\"+s.operators.dotPow+\"${args[1]}\\\\right)\",h}t.name=\"dotPow\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(r,n){return i(n)||r>=0||t.predictable?Math.pow(r,n):u(new e.Complex(r,0),new e.Complex(n,0))}function u(e,t){return p(g(h(e),t))}function c(e,t){if(!i(t)||0>t)throw new TypeError(\"For A^b, b must be a positive integer (value is \"+t+\")\");var r=a(e);if(2!=r.length)throw new Error(\"For A^b, A must be 2 dimensional (A has \"+r.length+\" dimensions)\");if(r[0]!=r[1])throw new Error(\"For A^b, A must be square (size is \"+r[0]+\"x\"+r[1]+\")\");for(var n=m(r[0]).valueOf(),o=e;t>=1;)1==(1&t)&&(n=g(o,n)),t>>=1,o=g(o,o);return n}function f(e,t){return v(c(e.valueOf(),t))}var l=r(30),p=n(r(343)),m=n(r(304)),h=n(r(352)),g=n(r(296)),v=n(r(51)),d=o(\"pow\",{\"number, number\":s,\"Complex, Complex\":u,\"BigNumber, BigNumber\":function(r,n){return n.isInteger()||r>=0||t.predictable?r.pow(n):u(new e.Complex(r.toNumber(),0),new e.Complex(n.toNumber(),0))},\"Fraction, Fraction\":function(e,r){if(1!==r.d){if(t.predictable)throw new Error(\"Function pow does not support non-integer exponents for fractions.\");return s(e.valueOf(),r.valueOf())}return e.pow(r)},\"Array, number\":c,\"Array, BigNumber\":function(e,t){return c(e,t.toNumber())},\"Matrix, number\":f,\"Matrix, BigNumber\":function(e,t){return f(e,t.toNumber())},\"Unit, number\":function(e,t){return e.pow(t)}});return d.toTex=\"\\\\left(${args[0]}\\\\right)\"+l.operators.pow+\"{${args[1]}}\",d}var i=r(6).isInteger,a=r(40).size;t.name=\"pow\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(r){return r>=0||t.predictable?Math.log(r):c(new e.Complex(r,0))}function s(t){return new e.Complex(Math.log(Math.sqrt(t.re*t.re+t.im*t.im)),Math.atan2(t.im,t.re))}var u=n(r(295)),c=a(\"log\",{number:o,Complex:s,BigNumber:function(r){return!r.isNegative()||t.predictable?r.ln():s(new e.Complex(r.toNumber(),0))},\"Array | Matrix\":function(e){return i(e,c)},\"any, any\":function(e,t){return u(c(e),c(t))}});return c.toTex={1:\"\\\\ln\\\\left(${args[0]}\\\\right)\",2:\"\\\\log_{${args[1]}}\\\\left(${args[0]}\\\\right)\"},c}var i=r(19);t.name=\"log\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"fix\",{number:function(e){return e>0?Math.floor(e):Math.ceil(e)},Complex:function(t){return new e.Complex(t.re>0?Math.floor(t.re):Math.ceil(t.re),t.im>0?Math.floor(t.im):Math.ceil(t.im))},BigNumber:function(e){return e.isNegative()?e.ceil():e.floor()},Fraction:function(e){return e.s<0?e.ceil():e.floor()},\"Array | Matrix\":function(e){return i(e,a,!0)}});return a.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",a}var i=r(19);t.name=\"fix\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"floor\",{number:Math.floor,Complex:function(t){return new e.Complex(Math.floor(t.re),Math.floor(t.im))},BigNumber:function(e){return e.floor()},Fraction:function(e){return e.floor()},\"Array | Matrix\":function(e){return i(e,a,!0)}});return a.toTex=\"\\\\left\\\\lfloor${args[0]}\\\\right\\\\rfloor\",a}var i=r(19);t.name=\"floor\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(t,r){if(!t.isInt()||!r.isInt())throw new Error(\"Parameters in function gcd must be integer numbers\");for(var n=new e.BigNumber(0);!r.isZero();){var i=t.mod(r);t=r,r=i}return t.lt(n)?t.neg():t}var s=n(r(51)),u=n(r(53)),c=n(r(54)),f=n(r(55)),l=n(r(56)),p=n(r(57)),m=a(\"gcd\",{\"number, number\":i,\"BigNumber, BigNumber\":o,\"Fraction, Fraction\":function(e,t){return e.gcd(t)},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=c(e,t,m);break;default:r=u(t,e,m,!0)}break;default:switch(t.storage()){case\"sparse\":r=u(e,t,m,!1);break;default:r=l(e,t,m)}}return r},\"Array, Array\":function(e,t){return m(s(e),s(t)).valueOf()},\"Array, Matrix\":function(e,t){return m(s(e),t)},\"Matrix, Array\":function(e,t){return m(e,s(t))},\"Matrix, number | BigNumber\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=f(e,t,m,!1);break;default:r=p(e,t,m,!1)}return r},\"number | BigNumber, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=f(t,e,m,!0);break;default:r=p(t,e,m,!0)}return r},\"Array, number | BigNumber\":function(e,t){return p(s(e),t,m,!1).valueOf()},\"number | BigNumber, Array\":function(e,t){return p(s(t),e,m,!0).valueOf()},\"Array | Matrix | number | BigNumber, Array | Matrix | number | BigNumber, ...Array | Matrix | number | BigNumber\":function(e,t,r){for(var n=m(e,t),i=0;i<r.length;i++)n=m(n,r[i]);return n}});return m.toTex=\"\\\\gcd\\\\left(${args}\\\\right)\",m}function i(e,t){if(!a(e)||!a(t))throw new Error(\"Parameters in function gcd must be integer numbers\");for(var r;0!=t;)r=e%t,e=t,t=r;return 0>e?-e:e}var a=r(6).isInteger;t.name=\"gcd\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e){for(var t=0,r=0,n=0;n<e.length;n++){var i=s(e[n]);p(r,i)?(t=f(t,f(c(r,i),c(r,i))),t=u(t,1),r=i):t=u(t,m(i)?f(c(i,r),c(i,r)):i)}return f(r,l(t))}var s=n(r(315)),u=n(r(52)),c=n(r(295)),f=n(r(297)),l=n(r(357)),p=n(r(59)),m=n(r(358)),h=a(\"hypot\",{\"... number | BigNumber\":o,Array:function(e){return h.apply(h,i(e))},Matrix:function(e){return h.apply(h,i(e.toArray()))}});return h.toTex=\"\\\\hypot\\\\left(${args}\\\\right)\",h}var i=r(40).flatten;t.name=\"hypot\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){function a(r){return r>=0||t.predictable?Math.sqrt(r):o(new e.Complex(r,0))}function o(t){var r,n,i=Math.sqrt(t.re*t.re+t.im*t.im);return r=t.re>=0?.5*Math.sqrt(2*(i+t.re)):Math.abs(t.im)/Math.sqrt(2*(i-t.re)),n=t.re<=0?.5*Math.sqrt(2*(i-t.re)):Math.abs(t.im)/Math.sqrt(2*(i+t.re)),t.im>=0?new e.Complex(r,n):new e.Complex(r,-n)}var s=n(\"sqrt\",{number:a,Complex:o,BigNumber:function(e){return!e.isNegative()||t.predictable?e.sqrt():a(e.toNumber())},\"Array | Matrix\":function(e){return i(e,s,!0)},Unit:function(e){return e.pow(.5)}});return s.toTex=\"\\\\sqrt{${args[0]}}\",s}var i=r(19);t.name=\"sqrt\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"isPositive\",{number:function(e){return e>0},BigNumber:function(e){return!e.isNeg()&&!e.isZero()&&!e.isNaN()},Fraction:function(e){return e.s>0&&e.n>0},Unit:function(e){return e.value>0},\"Array | Matrix\":function(e){return i(e,a)}});return a}var i=r(19);r(6);t.name=\"isPositive\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(t,r){if(!t.isInt()||!r.isInt())throw new Error(\"Parameters in function lcm must be integer numbers\");if(t.isZero()||r.isZero())return new e.BigNumber(0);for(var n=t.times(r);!r.isZero();){var i=r;\nr=t.mod(i),t=i}return n.div(t).abs()}var s=n(r(51)),u=n(r(347)),c=n(r(360)),f=n(r(298)),l=n(r(56)),p=n(r(57)),m=a(\"lcm\",{\"number, number\":i,\"BigNumber, BigNumber\":o,\"Fraction, Fraction\":function(t,r){return 0===t.n&&0===r.n?new e.Fraction(0):t.mul(r).abs().div(t.gcd(r))},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=c(e,t,m);break;default:r=u(t,e,m,!0)}break;default:switch(t.storage()){case\"sparse\":r=u(e,t,m,!1);break;default:r=l(e,t,m)}}return r},\"Array, Array\":function(e,t){return m(s(e),s(t)).valueOf()},\"Array, Matrix\":function(e,t){return m(s(e),t)},\"Matrix, Array\":function(e,t){return m(e,s(t))},\"Matrix, number | BigNumber\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=f(e,t,m,!1);break;default:r=p(e,t,m,!1)}return r},\"number | BigNumber, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=f(t,e,m,!0);break;default:r=p(t,e,m,!0)}return r},\"Array, number | BigNumber\":function(e,t){return p(s(e),t,m,!1).valueOf()},\"number | BigNumber, Array\":function(e,t){return p(s(t),e,m,!0).valueOf()},\"Array | Matrix | number | BigNumber, Array | Matrix | number | BigNumber, ...Array | Matrix | number | BigNumber\":function(e,t,r){for(var n=m(e,t),i=0;i<r.length;i++)n=m(n,r[i]);return n}});return m.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",m}function i(e,t){if(!a(e)||!a(t))throw new Error(\"Parameters in function lcm must be integer numbers\");if(0==e||0==t)return 0;for(var r,n=e*t;0!=t;)r=t,t=e%r,e=r;return Math.abs(n/e)}var a=r(6).isInteger;t.name=\"lcm\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=n(r(48)),u=e.SparseMatrix,c=function(e,t,r){var n=e._values,c=e._size,f=e._datatype,l=t._values,p=t._size,m=t._datatype;if(c.length!==p.length)throw new a(c.length,p.length);if(c[0]!==p[0]||c[1]!==p[1])throw new RangeError(\"Dimension mismatch. Matrix A (\"+c+\") must match Matrix B (\"+p+\")\");var h,g=c[0],v=c[1],d=s,y=0,x=r;\"string\"==typeof f&&f===m&&(h=f,d=o.find(s,[h,h]),y=o.convert(0,h),x=o.find(r,[h,h]));for(var w=n&&l?[]:void 0,b=[],N=[],E=new u({values:w,index:b,ptr:N,size:[g,v],datatype:h}),M=w?[]:void 0,A=[],_=[],O=0;v>O;O++){N[O]=b.length;var T=O+1;if(i(e,O,A,M,_,T,E,x),i(t,O,A,M,_,T,E,x),M)for(var C=N[O];C<b.length;){var S=b[C];if(_[S]===T){var z=M[S];d(z,y)?b.splice(C,1):(w.push(z),C++)}else b.splice(C,1)}else for(var B=N[O];B<b.length;){var k=b[B];_[k]!==T?b.splice(B,1):B++}}return N[v]=b.length,E};return c}var i=r(361),a=r(42);t.name=\"algorithm06\",t.factory=n},function(e,t){\"use strict\";e.exports=function(e,t,r,n,i,a,o,s,u,c,f){var l,p,m,h,g=e._values,v=e._index,d=e._ptr,y=o._index;if(n)for(p=d[t],m=d[t+1],l=p;m>l;l++)h=v[l],r[h]!==a?(r[h]=a,y.push(h),c?(n[h]=u?s(g[l],f):s(f,g[l]),i[h]=a):n[h]=g[l]):(n[h]=u?s(g[l],n[h]):s(n[h],g[l]),i[h]=a);else for(p=d[t],m=d[t+1],l=p;m>l;l++)h=v[l],r[h]!==a?(r[h]=a,y.push(h)):i[h]=a}},function(e,t,r){\"use strict\";function n(e,t,r,n){function a(t){return new e.Complex(Math.log(Math.sqrt(t.re*t.re+t.im*t.im))/Math.LN10,Math.atan2(t.im,t.re)/Math.LN10)}var o=n(\"log10\",{number:function(r){return r>=0||t.predictable?Math.log(r)/Math.LN10:o(new e.Complex(r,0))},Complex:a,BigNumber:function(r){return!r.isNegative()||t.predictable?r.log():a(new e.Complex(r.toNumber(),0))},\"Array | Matrix\":function(e){return i(e,o)}});return o.toTex=\"\\\\log_{10}\\\\left(${args[0]}\\\\right)\",o}var i=r(19);t.name=\"log10\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){function a(e,t){if(t>0)return e-t*Math.floor(e/t);if(0===t)return e;throw new Error(\"Cannot calculate mod for a negative divisor\")}var o=n(r(51)),s=r(30),u=n(r(347)),c=n(r(60)),f=n(r(303)),l=n(r(298)),p=n(r(62)),m=n(r(56)),h=n(r(57)),g=i(\"mod\",{\"number, number\":a,\"BigNumber, BigNumber\":function(e,t){return t.isZero()?e:e.mod(t)},\"Fraction, Fraction\":function(e,t){return e.mod(t)},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=f(e,t,g,!1);break;default:r=u(t,e,g,!0)}break;default:switch(t.storage()){case\"sparse\":r=c(e,t,g,!1);break;default:r=m(e,t,g)}}return r},\"Array, Array\":function(e,t){return g(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return g(o(e),t)},\"Matrix, Array\":function(e,t){return g(e,o(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=l(e,t,g,!1);break;default:r=h(e,t,g,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=p(t,e,g,!0);break;default:r=h(t,e,g,!0)}return r},\"Array, any\":function(e,t){return h(o(e),t,g,!1).valueOf()},\"any, Array\":function(e,t){return h(o(t),e,g,!0).valueOf()}});return g.toTex=\"\\\\left(${args[0]}\"+s.operators.mod+\"${args[1]}\\\\right)\",g}t.name=\"mod\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){function a(e,t){var r=e.size();if(1==r.length){if(t===Number.POSITIVE_INFINITY||\"inf\"===t){var n=0;return e.forEach(function(e){var t=o(e);p(t,n)&&(n=t)},!0),n}if(t===Number.NEGATIVE_INFINITY||\"-inf\"===t){var i;return e.forEach(function(e){var t=o(e);(!i||m(t,i))&&(i=t)},!0),i||0}if(\"fro\"===t)return a(e,2);if(\"number\"==typeof t&&!isNaN(t)){if(!l(t,0)){var h=0;return e.forEach(function(e){h=s(u(o(e),t),h)},!0),u(h,1/t)}return Number.POSITIVE_INFINITY}throw new Error(\"Unsupported parameter value\")}if(2==r.length){if(1===t){var d=[],y=0;return e.forEach(function(e,t){var r=t[1],n=s(d[r]||0,o(e));p(n,y)&&(y=n),d[r]=n},!0),y}if(t===Number.POSITIVE_INFINITY||\"inf\"===t){var x=[],w=0;return e.forEach(function(e,t){var r=t[0],n=s(x[r]||0,o(e));p(n,w)&&(w=n),x[r]=n},!0),w}if(\"fro\"===t)return c(g(f(v(e),e)));if(2===t)throw new Error(\"Unsupported parameter value, missing implementation of matrix singular value decomposition\");throw new Error(\"Unsupported parameter value\")}}var o=n(r(315)),s=n(r(50)),u=n(r(351)),c=n(r(357)),f=n(r(296)),l=n(r(48)),p=n(r(63)),m=n(r(59)),h=n(r(51)),g=n(r(365)),v=n(r(322)),d=i.find(o,[\"Complex\"]),y=i(\"norm\",{number:Math.abs,Complex:d,BigNumber:function(e){return e.abs()},\"boolean | null\":function(e){return Math.abs(e)},Array:function(e){return a(h(e),2)},Matrix:function(e){return a(e,2)},\"number | Complex | BigNumber | boolean | null, number | BigNumber | string\":function(e){return y(e)},\"Array, number | BigNumber | string\":function(e,t){return a(h(e),t)},\"Matrix, number | BigNumber | string\":function(e,t){return a(e,t)}});return y.toTex={1:\"\\\\left\\\\|${args[0]}\\\\right\\\\|\",2:\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\"},y}t.name=\"norm\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=n(r(51)),u=n(r(50)),c=o(\"trace\",{Array:function(e){return c(s(e))},Matrix:function(e){var t;switch(e.storage()){case\"dense\":t=f(e);break;case\"sparse\":t=l(e)}return t},any:i}),f=function(e){var t=e._size,r=e._data;switch(t.length){case 1:if(1==t[0])return i(r[0]);throw new RangeError(\"Matrix must be square (size: \"+a(t)+\")\");case 2:var n=t[0],o=t[1];if(n===o){for(var s=0,c=0;n>c;c++)s=u(s,r[c][c]);return s}throw new RangeError(\"Matrix must be square (size: \"+a(t)+\")\");default:throw new RangeError(\"Matrix must be two dimensional (size: \"+a(t)+\")\")}},l=function(e){var t=e._values,r=e._index,n=e._ptr,i=e._size,o=i[0],s=i[1];if(o===s){var c=0;if(t.length>0)for(var f=0;s>f;f++)for(var l=n[f],p=n[f+1],m=l;p>m;m++){var h=r[m];if(h===f){c=u(c,t[m]);break}if(h>f)break}return c}throw new RangeError(\"Matrix must be square (size: \"+a(i)+\")\")};return c.toTex=\"\\\\mathrm{tr}\\\\left(${args[0]}\\\\right)\",c}var i=r(3).clone,a=r(23).format;t.name=\"trace\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(t,r){var n=e.BigNumber.precision,i=e.BigNumber.constructor({precision:n+2}),a=new e.BigNumber(0),o=new i(1),s=r.isNegative();if(s&&(r=r.neg()),r.isZero())throw new Error(\"Root must be non-zero\");if(t.isNegative()&&!r.abs().mod(2).equals(1))throw new Error(\"Root must be odd when a is negative.\");if(t.isZero())return a;if(!t.isFinite())return s?a:t;var u=t.abs().pow(o.div(r));return u=t.isNeg()?u.neg():u,new e.BigNumber((s?o.div(u):u).toPrecision(n))}var u=n(r(51)),c=n(r(53)),f=n(r(347)),l=n(r(360)),p=n(r(298)),m=n(r(56)),h=n(r(57)),g=o(\"nthRoot\",{number:function(e){return i(e,2)},\"number, number\":i,BigNumber:function(t){return s(t,new e.BigNumber(2))},Complex:function(e){return a(e,2)},\"Complex, number\":a,\"BigNumber, BigNumber\":s,\"Array | Matrix\":function(e){return g(e,2)},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":if(1!==t.density())throw new Error(\"Root must be non-zero\");r=l(e,t,g);break;default:r=f(t,e,g,!0)}break;default:switch(t.storage()){case\"sparse\":if(1!==t.density())throw new Error(\"Root must be non-zero\");r=c(e,t,g,!1);break;default:r=m(e,t,g)}}return r},\"Array, Array\":function(e,t){return g(u(e),u(t)).valueOf()},\"Array, Matrix\":function(e,t){return g(u(e),t)},\"Matrix, Array\":function(e,t){return g(e,u(t))},\"Matrix, number | BigNumber\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=p(e,t,g,!1);break;default:r=h(e,t,g,!1)}return r},\"number | BigNumber, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":if(1!==t.density())throw new Error(\"Root must be non-zero\");r=p(t,e,g,!0);break;default:r=h(t,e,g,!0)}return r},\"Array, number | BigNumber\":function(e,t){return g(u(e),t).valueOf()},\"number | BigNumber, Array\":function(e,t){return g(e,u(t)).valueOf()}});return g.toTex=\"\\\\sqrt[${args[1]}]{${args[0]}}\",g}function i(e,t){var r=0>t;if(r&&(t=-t),0===t)throw new Error(\"Root must be non-zero\");if(0>e&&Math.abs(t)%2!=1)throw new Error(\"Root must be odd when a is negative.\");if(0==e)return 0;if(!isFinite(e))return r?0:e;var n=Math.pow(Math.abs(e),1/t);return n=0>e?-n:n,r?1/n:n}function a(e,t){if(0>t)throw new Error(\"Root must be greater than zero\");if(0===t)throw new Error(\"Root must be non-zero\");if(t%1!==0)throw new Error(\"Root must be an integer\");for(var r=e.toPolar(),n=[],i=Math.pow(r.r,1/t),a=0;t>a;a++)n.push({r:i,phi:(r.phi+2*Math.PI*a)/t});return n}t.name=\"nthRoot\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var c=n(r(51)),f=n(r(48)),l=n(r(368)),p=n(r(298)),m=n(r(62)),h=n(r(57)),g=o(\"round\",{number:Math.round,\"number, number\":function(e,t){if(!a(t))throw new TypeError(u);if(0>t||t>15)throw new Error(\"Number of decimals in function round must be in te range of 0-15\");return i(e,t)},Complex:function(t){return new e.Complex(Math.round(t.re),Math.round(t.im))},\"Complex, number\":function(t,r){return new e.Complex(i(t.re,r),i(t.im,r))},\"Complex, BigNumber\":function(t,r){if(!r.isInteger())throw new TypeError(u);var n=r.toNumber();return new e.Complex(i(t.re,n),i(t.im,n))},\"number, BigNumber\":function(t,r){if(!r.isInteger())throw new TypeError(u);return new e.BigNumber(t).toDecimalPlaces(r.toNumber())},BigNumber:function(e){return e.toDecimalPlaces(0)},\"BigNumber, BigNumber\":function(e,t){if(!t.isInteger())throw new TypeError(u);return e.toDecimalPlaces(t.toNumber())},Fraction:function(e){return e.round()},\"Array | Matrix\":function(e){return s(e,g,!0)},\"Matrix, number | BigNumber\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=p(e,t,g,!1);break;default:r=h(e,t,g,!1)}return r},\"number | Complex | BigNumber, Matrix\":function(e,t){if(!f(e,0)){var r;switch(t.storage()){case\"sparse\":r=m(t,e,g,!0);break;default:r=h(t,e,g,!0)}return r}return l(t.size(),t.storage())},\"Array, number | BigNumber\":function(e,t){return h(c(e),t,g,!1).valueOf()},\"number | Complex | BigNumber, Array\":function(e,t){return h(c(t),e,g,!0).valueOf()}});return g.toTex={1:\"\\\\left\\\\lfloor${args[0]}\\\\right\\\\rceil\",2:\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\"},g}function i(e,t){return parseFloat(o(e,t))}var a=r(6).isInteger,o=r(6).toFixed,s=r(19),u=\"Number of decimals in function round must be an integer\";t.name=\"round\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(t,r){var n=u(t),i=n?new e.BigNumber(0):0;if(c(t),r){var o=f(r);return t.length>0?o.resize(t,i):o}var s=[];return t.length>0?a(s,t,i):s}function u(e){var t=!1;return e.forEach(function(e,r,n){e&&e.isBigNumber===!0&&(t=!0,n[r]=e.toNumber())}),t}function c(e){e.forEach(function(e){if(\"number\"!=typeof e||!i(e)||0>e)throw new Error(\"Parameters in function zeros must be positive integers\")})}var f=n(r(51)),l=o(\"zeros\",{\"\":function(){return\"array\"===t.matrix?s([]):s([],\"default\")},\"...number | BigNumber | string\":function(e){var r=e[e.length-1];if(\"string\"==typeof r){var n=e.pop();return s(e,n)}return\"array\"===t.matrix?s(e):s(e,\"default\")},Array:s,Matrix:function(e){var t=e.storage();return s(e.valueOf(),t)},\"Array | Matrix, string\":function(e,t){return s(e.valueOf(),t)}});return l.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",l}var i=r(6).isInteger,a=r(40).resize;t.name=\"zeros\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var o=n(\"sign\",{number:i.sign,Complex:function(t){var r=Math.sqrt(t.re*t.re+t.im*t.im);return new e.Complex(t.re/r,t.im/r)},BigNumber:function(t){return new e.BigNumber(t.cmp(0))},Fraction:function(t){return new e.Fraction(t.s)},\"Array | Matrix\":function(e){return a(e,o,!0)},Unit:function(e){return i.sign(e.value)}});return o.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",o}var i=r(6),a=r(19);t.name=\"sign\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"square\",{number:function(e){return e*e},Complex:function(t){return new e.Complex(t.re*t.re-t.im*t.im,t.re*t.im+t.im*t.re)},BigNumber:function(e){return e.times(e)},Fraction:function(e){return e.mul(e)},\"Array | Matrix\":function(e){return i(e,a,!0)},Unit:function(e){return e.pow(2)}});return a.toTex=\"\\\\left(${args[0]}\\\\right)^2\",a}var i=r(19);t.name=\"square\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=r(30),s=a(\"unaryPlus\",{number:function(e){return e},Complex:function(e){return e.clone()},BigNumber:function(e){return e},Fraction:function(e){return e},Unit:function(e){return e.clone()},\"Array | Matrix\":function(e){return i(e,s,!0)},\"boolean | string | null\":function(r){return\"bignumber\"==t.number?new e.BigNumber(+r):+r}});return s.toTex=o.operators.unaryPlus+\"\\\\left(${args[0]}\\\\right)\",s}var i=r(19);t.name=\"unaryPlus\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e,r){var n,a,o,s=0,c=1,f=1,l=0;if(!i(e)||!i(r))throw new Error(\"Parameters in function xgcd must be integer numbers\");for(;r;)a=Math.floor(e/r),o=e%r,n=s,s=c-a*s,c=n,n=f,f=l-a*f,l=n,e=r,r=o;var p;return p=0>e?[-e,-c,-l]:[e,e?c:0,l],\"array\"===t.matrix?p:u(p)}function s(r,n){var i,a,o,s=new e.BigNumber(0),c=new e.BigNumber(0),f=new e.BigNumber(1),l=new e.BigNumber(1),p=new e.BigNumber(0);if(!r.isInt()||!n.isInt())throw new Error(\"Parameters in function xgcd must be integer numbers\");for(;!n.isZero();)a=r.div(n).floor(),o=r.mod(n),i=c,c=f.minus(a.times(c)),f=i,i=l,l=p.minus(a.times(l)),p=i,r=n,n=o;var m;return m=r.lt(s)?[r.neg(),f.neg(),p.neg()]:[r,r.isZero()?0:f,p],\"array\"===t.matrix?m:u(m)}var u=n(r(51)),c=a(\"xgcd\",{\"number, number\":o,\"BigNumber, BigNumber\":s});return c.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",c}var i=r(6).isInteger;t.name=\"xgcd\",t.factory=n},function(e,t,r){e.exports=[r(374),r(378),r(379),r(381),r(383),r(386),r(388)]},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=r(30),u=n(r(51)),c=n(r(347)),f=n(r(360)),l=n(r(298)),p=n(r(56)),m=n(r(57)),h=o(\"bitAnd\",{\"number, number\":function(e,t){if(!i(e)||!i(t))throw new Error(\"Integers expected in function bitAnd\");return e&t},\"BigNumber, BigNumber\":a,\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=f(e,t,h,!1);break;default:r=c(t,e,h,!0)}break;default:switch(t.storage()){case\"sparse\":r=c(e,t,h,!1);break;default:r=p(e,t,h)}}return r},\"Array, Array\":function(e,t){return h(u(e),u(t)).valueOf()},\"Array, Matrix\":function(e,t){return h(u(e),t)},\"Matrix, Array\":function(e,t){return h(e,u(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=l(e,t,h,!1);break;default:r=m(e,t,h,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=l(t,e,h,!0);break;default:r=m(t,e,h,!0)}return r},\"Array, any\":function(e,t){return m(u(e),t,h,!1).valueOf()},\"any, Array\":function(e,t){return m(u(t),e,h,!0).valueOf()}});return h.toTex=\"\\\\left(${args[0]}\"+s.operators.bitAnd+\"${args[1]}\\\\right)\",h}var i=r(6).isInteger,a=r(375);t.name=\"bitAnd\",t.factory=n},function(e,t,r){var n=r(376);e.exports=function(e,t){if(e.isFinite()&&!e.isInteger()||t.isFinite()&&!t.isInteger())throw new Error(\"Integers expected in function bitAnd\");var r=e.constructor;if(e.isNaN()||t.isNaN())return new r(NaN);if(e.isZero()||t.eq(-1)||e.eq(t))return e;if(t.isZero()||e.eq(-1))return t;if(!e.isFinite()||!t.isFinite()){if(!e.isFinite()&&!t.isFinite())return e.isNegative()==t.isNegative()?e:new r(0);if(!e.isFinite())return t.isNegative()?e:e.isNegative()?new r(0):t;if(!t.isFinite())return e.isNegative()?t:t.isNegative()?new r(0):e}return n(e,t,function(e,t){return e&t})}},function(e,t,r){function n(e){for(var t=e.c,r=t[0]+\"\",n=1;n<t.length;++n){for(var i=t[n]+\"\",a=7-i.length;a--;)i=\"0\"+i;r+=i}var o;for(o=r.length-1;\"0\"==r.charAt(o);--o);var s=e.e,u=r.slice(0,o+1||1),c=u.length;if(s>0)if(++s>c)for(s-=c;s--;u+=\"0\");else c>s&&(u=u.slice(0,s)+\".\"+u.slice(s));for(var f=[0],n=0;n<u.length;){for(var l=f.length;l--;f[l]*=10);f[0]+=u.charAt(n++)<<0;for(var o=0;o<f.length;++o)f[o]>1&&(null==f[o+1]&&(f[o+1]=0),f[o+1]+=f[o]>>1,f[o]&=1)}return f.reverse()}var i=r(377);e.exports=function(e,t,r){var a,o,s=e.constructor,u=+(e.s<0),c=+(t.s<0);if(u){a=n(i(e));for(var f=0;f<a.length;++f)a[f]^=1}else a=n(e);if(c){o=n(i(t));for(var f=0;f<o.length;++f)o[f]^=1}else o=n(t);var l,p,m;a.length<=o.length?(l=a,p=o,m=u):(l=o,p=a,m=c);var h=l.length,g=p.length,v=1^r(u,c),d=new s(1^v),y=s.ONE,x=new s(2),w=s.precision;for(s.config({precision:1e9});h>0;)r(l[--h],p[--g])==v&&(d=d.plus(y)),y=y.times(x);for(;g>0;)r(m,p[--g])==v&&(d=d.plus(y)),y=y.times(x);return s.config({precision:w}),0==v&&(d.s=-d.s),d}},function(e,t){e.exports=function(e){if(e.isFinite()&&!e.isInteger())throw new Error(\"Integer expected in function bitNot\");var t=e.constructor,r=t.precision;t.config({precision:1e9});var e=e.plus(t.ONE);return e.s=-e.s||null,t.config({precision:r}),e}},function(e,t,r){\"use strict\";function n(e,t,n,s){var u=r(30),c=s(\"bitNot\",{number:function(e){if(!o(e))throw new Error(\"Integer expected in function bitNot\");return~e},BigNumber:a,\"Array | Matrix\":function(e){return i(e,c)}});return c.toTex=u.operators.bitNot+\"\\\\left(${args[0]}\\\\right)\",c}var i=r(19),a=r(377),o=r(6).isInteger;t.name=\"bitNot\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=r(30),u=n(r(51)),c=n(r(53)),f=n(r(54)),l=n(r(55)),p=n(r(56)),m=n(r(57)),h=o(\"bitOr\",{\"number, number\":function(e,t){if(!i(e)||!i(t))throw new Error(\"Integers expected in function bitOr\");return e|t},\"BigNumber, BigNumber\":a,\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=f(e,t,h);break;default:r=c(t,e,h,!0)}break;default:switch(t.storage()){case\"sparse\":r=c(e,t,h,!1);break;default:r=p(e,t,h)}}return r},\"Array, Array\":function(e,t){return h(u(e),u(t)).valueOf()},\"Array, Matrix\":function(e,t){return h(u(e),t)},\"Matrix, Array\":function(e,t){return h(e,u(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=l(e,t,h,!1);break;default:r=m(e,t,h,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=l(t,e,h,!0);break;default:r=m(t,e,h,!0)}return r},\"Array, any\":function(e,t){return m(u(e),t,h,!1).valueOf()},\"any, Array\":function(e,t){return m(u(t),e,h,!0).valueOf()}});return h.toTex=\"\\\\left(${args[0]}\"+s.operators.bitOr+\"${args[1]}\\\\right)\",h}var i=r(6).isInteger,a=r(380);t.name=\"bitOr\",t.factory=n},function(e,t,r){var n=r(376);e.exports=function(e,t){if(e.isFinite()&&!e.isInteger()||t.isFinite()&&!t.isInteger())throw new Error(\"Integers expected in function bitOr\");var r=e.constructor;if(e.isNaN()||t.isNaN())return new r(NaN);var i=new r(-1);return e.isZero()||t.eq(i)||e.eq(t)?t:t.isZero()||e.eq(i)?e:e.isFinite()&&t.isFinite()?n(e,t,function(e,t){return e|t}):!e.isFinite()&&!e.isNegative()&&t.isNegative()||e.isNegative()&&!t.isNegative()&&!t.isFinite()?i:e.isNegative()&&t.isNegative()?e.isFinite()?e:t:e.isFinite()?t:e}},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=r(30),u=n(r(51)),c=n(r(60)),f=n(r(61)),l=n(r(62)),p=n(r(56)),m=n(r(57)),h=o(\"bitXor\",{\"number, number\":function(e,t){if(!i(e)||!i(t))throw new Error(\"Integers expected in function bitXor\");return e^t},\"BigNumber, BigNumber\":a,\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=f(e,t,h);break;default:r=c(t,e,h,!0)}break;default:switch(t.storage()){case\"sparse\":r=c(e,t,h,!1);break;default:r=p(e,t,h)}}return r},\"Array, Array\":function(e,t){return h(u(e),u(t)).valueOf()},\"Array, Matrix\":function(e,t){return h(u(e),t)},\"Matrix, Array\":function(e,t){return h(e,u(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=l(e,t,h,!1);break;default:r=m(e,t,h,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=l(t,e,h,!0);break;default:r=m(t,e,h,!0)}return r},\"Array, any\":function(e,t){return m(u(e),t,h,!1).valueOf()},\"any, Array\":function(e,t){return m(u(t),e,h,!0).valueOf()}});return h.toTex=\"\\\\left(${args[0]}\"+s.operators.bitXor+\"${args[1]}\\\\right)\",h}var i=r(6).isInteger,a=r(382);t.name=\"bitXor\",t.factory=n},function(e,t,r){var n=r(376),i=r(377);e.exports=function(e,t){if(e.isFinite()&&!e.isInteger()||t.isFinite()&&!t.isInteger())throw new Error(\"Integers expected in function bitXor\");var r=e.constructor;if(e.isNaN()||t.isNaN())return new r(NaN);if(e.isZero())return t;if(t.isZero())return e;if(e.eq(t))return new r(0);var a=new r(-1);return e.eq(a)?i(t):t.eq(a)?i(e):e.isFinite()&&t.isFinite()?n(e,t,function(e,t){return e^t}):e.isFinite()||t.isFinite()?new r(e.isNegative()==t.isNegative()?1/0:-(1/0)):a}},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=r(30),u=n(r(51)),c=n(r(48)),f=n(r(368)),l=n(r(53)),p=n(r(347)),m=n(r(385)),h=n(r(55)),g=n(r(298)),v=n(r(56)),d=n(r(57)),y=o(\"leftShift\",{\"number, number\":function(e,t){if(!i(e)||!i(t))throw new Error(\"Integers expected in function leftShift\");return e<<t},\"BigNumber, BigNumber\":a,\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=m(e,t,y,!1);break;default:r=p(t,e,y,!0)}break;default:switch(t.storage()){case\"sparse\":r=l(e,t,y,!1);break;default:r=v(e,t,y)}}return r},\"Array, Array\":function(e,t){return y(u(e),u(t)).valueOf()},\"Array, Matrix\":function(e,t){return y(u(e),t)},\"Matrix, Array\":function(e,t){return y(e,u(t))},\"Matrix, number | BigNumber\":function(e,t){if(!c(t,0)){var r;switch(e.storage()){case\"sparse\":r=g(e,t,y,!1);break;default:r=d(e,t,y,!1)}return r}return e.clone()},\"number | BigNumber, Matrix\":function(e,t){if(!c(e,0)){var r;switch(t.storage()){case\"sparse\":r=h(t,e,y,!0);break;default:r=d(t,e,y,!0)}return r}return f(t.size(),t.storage())},\"Array, number | BigNumber\":function(e,t){return y(u(e),t).valueOf()},\"number | BigNumber, Array\":function(e,t){return y(e,u(t)).valueOf()}});return y.toTex=\"\\\\left(${args[0]}\"+s.operators.leftShift+\"${args[1]}\\\\right)\",y}var i=r(6).isInteger,a=r(384);t.name=\"leftShift\",t.factory=n},function(e,t){e.exports=function(e,t){if(e.isFinite()&&!e.isInteger()||t.isFinite()&&!t.isInteger())throw new Error(\"Integers expected in function leftShift\");var r=e.constructor;return e.isNaN()||t.isNaN()||t.isNegative()&&!t.isZero()?new r(NaN):e.isZero()||t.isZero()?e:e.isFinite()||t.isFinite()?t.lt(55)?e.times(Math.pow(2,t.toNumber())+\"\"):e.times(new r(2).pow(t)):new r(NaN)}},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(48)),s=e.SparseMatrix,u=function(e,t,r){var n=e._values,u=e._index,c=e._ptr,f=e._size,l=e._datatype,p=t._values,m=t._index,h=t._ptr,g=t._size,v=t._datatype;if(f.length!==g.length)throw new i(f.length,g.length);if(f[0]!==g[0]||f[1]!==g[1])throw new RangeError(\"Dimension mismatch. Matrix A (\"+f+\") must match Matrix B (\"+g+\")\");if(!n||!p)throw new Error(\"Cannot perform operation on Pattern Sparse Matrices\");var d,y=f[0],x=f[1],w=o,b=0,N=r;\"string\"==typeof l&&l===v&&(d=l,w=a.find(o,[d,d]),b=a.convert(0,d),N=a.find(r,[d,d]));for(var E,M,A,_,O=[],T=[],C=[],S=new s({values:O,index:T,ptr:C,size:[y,x],datatype:d}),z=[],B=[],k=0;x>k;k++){C[k]=T.length;var I=k+1;for(M=c[k],A=c[k+1],E=M;A>E;E++)_=u[E],B[_]=I,z[_]=n[E],T.push(_);for(M=h[k],A=h[k+1],E=M;A>E;E++)_=m[E],B[_]===I&&(z[_]=N(z[_],p[E]));for(E=C[k];E<T.length;){_=T[E];var R=z[_];w(R,b)?T.splice(E,1):(O.push(R),E++)}}return C[x]=T.length,S};return u}var i=r(42);t.name=\"algorithm08\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=r(30),u=n(r(51)),c=n(r(48)),f=n(r(368)),l=n(r(53)),p=n(r(347)),m=n(r(385)),h=n(r(55)),g=n(r(298)),v=n(r(56)),d=n(r(57)),y=o(\"rightArithShift\",{\"number, number\":function(e,t){if(!i(e)||!i(t))throw new Error(\"Integers expected in function rightArithShift\");return e>>t},\"BigNumber, BigNumber\":a,\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=m(e,t,y,!1);break;default:r=p(t,e,y,!0)}break;default:switch(t.storage()){case\"sparse\":r=l(e,t,y,!1);break;default:r=v(e,t,y)}}return r},\"Array, Array\":function(e,t){return y(u(e),u(t)).valueOf()},\"Array, Matrix\":function(e,t){return y(u(e),t)},\"Matrix, Array\":function(e,t){return y(e,u(t))},\"Matrix, number | BigNumber\":function(e,t){if(!c(t,0)){var r;switch(e.storage()){case\"sparse\":r=g(e,t,y,!1);break;default:r=d(e,t,y,!1)}return r}return e.clone()},\"number | BigNumber, Matrix\":function(e,t){if(!c(e,0)){var r;switch(t.storage()){case\"sparse\":r=h(t,e,y,!0);break;default:r=d(t,e,y,!0)}return r}return f(t.size(),t.storage())},\"Array, number | BigNumber\":function(e,t){return y(u(e),t).valueOf()},\"number | BigNumber, Array\":function(e,t){return y(e,u(t)).valueOf()}});return y.toTex=\"\\\\left(${args[0]}\"+s.operators.rightArithShift+\"${args[1]}\\\\right)\",y}var i=r(6).isInteger,a=r(387);t.name=\"rightArithShift\",t.factory=n},function(e,t){e.exports=function(e,t){if(e.isFinite()&&!e.isInteger()||t.isFinite()&&!t.isInteger())throw new Error(\"Integers expected in function rightArithShift\");var r=e.constructor;return e.isNaN()||t.isNaN()||t.isNegative()&&!t.isZero()?new r(NaN):e.isZero()||t.isZero()?e:t.isFinite()?t.lt(55)?e.div(Math.pow(2,t.toNumber())+\"\").floor():e.div(new r(2).pow(t)).floor():new r(e.isNegative()?-1:e.isFinite()?0:NaN)}},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=r(30),s=n(r(51)),u=n(r(48)),c=n(r(368)),f=n(r(53)),l=n(r(347)),p=n(r(385)),m=n(r(55)),h=n(r(298)),g=n(r(56)),v=n(r(57)),d=a(\"rightLogShift\",{\"number, number\":function(e,t){if(!i(e)||!i(t))throw new Error(\"Integers expected in function rightLogShift\");return e>>>t},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=p(e,t,d,!1);break;default:r=l(t,e,d,!0)}break;default:switch(t.storage()){case\"sparse\":r=f(e,t,d,!1);break;default:r=g(e,t,d)}}return r},\"Array, Array\":function(e,t){return d(s(e),s(t)).valueOf()},\"Array, Matrix\":function(e,t){return d(s(e),t)},\"Matrix, Array\":function(e,t){return d(e,s(t))},\"Matrix, number | BigNumber\":function(e,t){if(!u(t,0)){var r;switch(e.storage()){case\"sparse\":r=h(e,t,d,!1);break;default:r=v(e,t,d,!1)}return r}return e.clone()},\"number | BigNumber, Matrix\":function(e,t){if(!u(e,0)){var r;switch(t.storage()){case\"sparse\":r=m(t,e,d,!0);break;default:r=v(t,e,d,!0)}return r}return c(t.size(),t.storage())},\"Array, number | BigNumber\":function(e,t){return d(s(e),t).valueOf()},\"number | BigNumber, Array\":function(e,t){return d(e,s(t)).valueOf()}});return d.toTex=\"\\\\left(${args[0]}\"+o.operators.rightLogShift+\"${args[1]}\\\\right)\",d}var i=r(6).isInteger;t.name=\"rightLogShift\",t.factory=n},function(e,t,r){e.exports=[r(390),r(397),r(391),r(398)]},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(50)),o=n(r(391)),s=n(r(395)),u=n(r(396)),c=i(\"bellNumbers\",{\"number | BigNumber\":function(e){if(!u(e)||s(e))throw new TypeError(\"Non-negative integer value expected in function bellNumbers\");for(var t=0,r=0;e>=r;r++)t=a(t,o(e,r));return t}});return c.toTex=\"\\\\mathrm{B}_{${args[0]}}\",c}t.name=\"bellNumbers\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(50)),o=n(r(302)),s=n(r(296)),u=n(r(294)),c=n(r(351)),f=n(r(392)),l=n(r(394)),p=n(r(395)),m=n(r(396)),h=n(r(63)),g=i(\"stirlingS2\",{\"number | BigNumber, number | BigNumber\":function(e,t){if(!m(e)||p(e)||!m(t)||p(t))throw new TypeError(\"Non-negative integer value expected in function stirlingS2\");if(h(t,e))throw new TypeError(\"k must be less than or equal to n in function stirlingS2\");for(var r=f(t),n=0,i=0;t>=i;i++){var g=c(-1,o(t,i)),v=l(t,i),d=c(i,e);n=a(n,s(s(v,d),g))}return u(n,r)}});return g.toTex=\"\\\\mathrm{S}\\\\left(${args[0]},${args[1]}\\\\right)\",g}t.name=\"stirlingS2\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(393)),s=r(30),u=a(\"factorial\",{number:function(e){if(0>e)throw new Error(\"Value must be non-negative\");return o(e+1)},BigNumber:function(e){if(e.isNegative())throw new Error(\"Value must be non-negative\");return o(e.plus(1))},\"Array | Matrix\":function(e){return i(e,u)}});return u.toTex=\"\\\\left(${args[0]}\\\\right)\"+s.operators.factorial,u}var i=r(19);r(77);t.name=\"factorial\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,u){function c(r){if(r.isZero())return new e.BigNumber(1);for(var n=t.precision+(0|Math.log(r.toNumber())),i=e.BigNumber.constructor({precision:n}),a=new i(r),o=r.toNumber()-1;o>1;)a=a.times(o),o--;return new e.BigNumber(a.toPrecision(e.BigNumber.precision))}var f=n(r(296)),l=n(r(351)),p=u(\"gamma\",{number:function(e){var t,r;if(a(e)){if(0>=e)return isFinite(e)?1/0:NaN;if(e>171)return 1/0;for(var n=e-2,i=e-1;n>1;)i*=n,n--;return 0==i&&(i=1),i}if(.5>e)return Math.PI/(Math.sin(Math.PI*e)*p(1-e));if(e>=171.35)return 1/0;if(e>85){var u=e*e,c=u*e,f=c*e,l=f*e;return Math.sqrt(2*Math.PI/e)*Math.pow(e/Math.E,e)*(1+1/(12*e)+1/(288*u)-139/(51840*c)-571/(2488320*f)+163879/(209018880*l)+5246819/(75246796800*l*e))}--e,r=s[0];for(var m=1;m<s.length;++m)r+=s[m]/(e+m);return t=e+o+.5,Math.sqrt(2*Math.PI)*Math.pow(t,e+.5)*Math.exp(-t)*r},Complex:function(t){var r,n;if(0==t.im)return p(t.re);t=new e.Complex(t.re-1,t.im),n=new e.Complex(s[0],0);for(var i=1;i<s.length;++i){var a=t.re+i,u=a*a+t.im*t.im;0!=u?(n.re+=s[i]*a/u,n.im+=-(s[i]*t.im)/u):n.re=s[i]<0?-(1/0):1/0}r=new e.Complex(t.re+o+.5,t.im);var c=Math.sqrt(2*Math.PI);t.re+=.5;var m=l(r,t);0==m.im?m.re*=c:0==m.re?m.im*=c:(m.re*=c,m.im*=c);var h=Math.exp(-r.re);return r.re=h*Math.cos(-r.im),r.im=h*Math.sin(-r.im),f(f(m,r),n)},BigNumber:function(t){if(t.isInteger())return t.isNegative()||t.isZero()?new e.BigNumber(1/0):c(t.minus(1));if(!t.isFinite())return new e.BigNumber(t.isNegative()?NaN:1/0);throw new Error(\"Integer BigNumber expected\")},\"Array | Matrix\":function(e){return i(e,p)}});return p.toTex=\"\\\\Gamma\\\\left(${args[0]}\\\\right)\",p}var i=r(19),a=r(6).isInteger,o=4.7421875,s=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];t.name=\"gamma\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var o=n(\"combinations\",{\"number, number\":function(e,t){var r,n,i;if(!a(e)||0>e)throw new TypeError(\"Positive integer value expected in function combinations\");if(!a(t)||0>t)throw new TypeError(\"Positive integer value expected in function combinations\");if(t>e)throw new TypeError(\"k must be less than or equal to n\");for(r=Math.max(t,e-t),n=1,i=1;e-r>=i;i++)n=n*(r+i)/i;return n},\"BigNumber, BigNumber\":function(t,r){var n,a,o,s,u=new e.BigNumber(1);if(!i(t)||!i(r))throw new TypeError(\"Positive integer value expected in function combinations\");if(r.gt(t))throw new TypeError(\"k must be less than n in function combinations\");for(n=t.minus(r),r.lt(n)&&(n=r),a=u,o=u,s=t.minus(n);o.lte(s);o=o.plus(1))a=a.times(n.plus(o)).dividedBy(o);\nreturn a}});return o.toTex=\"\\\\binom{${args[0]}}{${args[1]}}\",o}function i(e){return e.isInteger()&&e.gte(0)}var a=r(6).isInteger;t.name=\"combinations\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"isNegative\",{number:function(e){return 0>e},BigNumber:function(e){return e.isNeg()&&!e.isZero()&&!e.isNaN()},Fraction:function(e){return e.s<0&&e.n>0},Unit:function(e){return e.value<0},\"Array | Matrix\":function(e){return i(e,a)}});return a}var i=r(19);r(6);t.name=\"isNegative\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var o=n(\"isInteger\",{number:a.isInteger,BigNumber:function(e){return e.isInt()},Fraction:function(e){return 1===e.d&&isFinite(e.n)},\"Array | Matrix\":function(e){return i(e,o)}});return o}var i=r(19),a=r(6);t.name=\"isInteger\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(394)),o=n(r(52)),s=n(r(358)),u=n(r(396)),c=n(r(63)),f=i(\"composition\",{\"number | BigNumber, number | BigNumber\":function(e,t){if(!(u(e)&&s(e)&&u(t)&&s(t)))throw new TypeError(\"Positive integer value expected in function composition\");if(c(t,e))throw new TypeError(\"k must be less than or equal to n in function composition\");return a(o(e,-1),o(t,-1))}});return f.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",f}t.name=\"composition\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(50)),o=n(r(294)),s=n(r(296)),u=n(r(394)),c=n(r(395)),f=n(r(396)),l=i(\"catalan\",{\"number | BigNumber\":function(e){if(!f(e)||c(e))throw new TypeError(\"Non-negative integer value expected in function catalan\");return o(u(s(e,2),e),a(e,1))}});return l.toTex=\"\\\\mathrm{C}_{${args[0]}}\",l}t.name=\"catalan\",t.factory=n},function(e,t,r){e.exports=[r(400),r(401),r(402),r(403)]},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"arg\",{number:function(e){return Math.atan2(0,e)},Complex:function(e){return Math.atan2(e.im,e.re)},\"Array | Matrix\":function(e){return i(e,a)}});return a.toTex=\"\\\\arg\\\\left(${args[0]}\\\\right)\",a}var i=r(19);t.name=\"arg\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"conj\",{number:function(e){return e},BigNumber:function(e){return e},Complex:function(t){return new e.Complex(t.re,-t.im)},\"Array | Matrix\":function(e){return i(e,a)}});return a.toTex=\"\\\\left(${args[0]}\\\\right)^*\",a}var i=r(19);t.name=\"conj\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"im\",{number:function(e){return 0},BigNumber:function(t){return new e.BigNumber(0)},Complex:function(e){return e.im},\"Array | Matrix\":function(e){return i(e,a)}});return a.toTex=\"\\\\Im\\\\left\\\\lbrace${args[0]}\\\\right\\\\rbrace\",a}var i=r(19);t.name=\"im\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"re\",{number:function(e){return e},BigNumber:function(e){return e},Complex:function(e){return e.re},\"Array | Matrix\":function(e){return i(e,a)}});return a.toTex=\"\\\\Re\\\\left\\\\lbrace${args[0]}\\\\right\\\\rbrace\",a}var i=r(19);t.name=\"re\",t.factory=n},function(e,t,r){e.exports=[r(405),r(406)]},function(e,t,r){\"use strict\";function n(e,t,n,f){var l=n(r(51)),p=f(\"intersect\",{\"Array, Array, Array\":function(e,t,r){if(!a(e))throw new TypeError(\"Array with 3 numbers expected for first argument\");if(!a(t))throw new TypeError(\"Array with 3 numbers expected for second argument\");if(!o(r))throw new TypeError(\"Array with 4 numbers expected as third argument\");return c(e[0],e[1],e[2],t[0],t[1],t[2],r[0],r[1],r[2],r[3])},\"Array, Array, Array, Array\":function(e,t,r,n){if(2===e.length){if(!i(e))throw new TypeError(\"Array with 2 numbers expected for first argument\");if(!i(t))throw new TypeError(\"Array with 2 numbers expected for second argument\");if(!i(r))throw new TypeError(\"Array with 2 numbers expected for third argument\");if(!i(n))throw new TypeError(\"Array with 2 numbers expected for fourth argument\");return s(e[0],e[1],t[0],t[1],r[0],r[1],n[0],n[1])}if(3===e.length){if(!a(e))throw new TypeError(\"Array with 3 numbers expected for first argument\");if(!a(t))throw new TypeError(\"Array with 3 numbers expected for second argument\");if(!a(r))throw new TypeError(\"Array with 3 numbers expected for third argument\");if(!a(n))throw new TypeError(\"Array with 3 numbers expected for fourth argument\");return u(e[0],e[1],e[2],t[0],t[1],t[2],r[0],r[1],r[2],n[0],n[1],n[2])}throw new TypeError(\"Arrays with two or thee dimensional points expected\")},\"Matrix, Matrix, Matrix\":function(e,t,r){return l(p(e.valueOf(),t.valueOf(),r.valueOf()))},\"Matrix, Matrix, Matrix, Matrix\":function(e,t,r,n){return l(p(e.valueOf(),t.valueOf(),r.valueOf(),n.valueOf()))}});return p}function i(e){return 2===e.length&&\"number\"==typeof e[0]&&\"number\"==typeof e[1]}function a(e){return 3===e.length&&\"number\"==typeof e[0]&&\"number\"==typeof e[1]&&\"number\"==typeof e[2]}function o(e){return 4===e.length&&\"number\"==typeof e[0]&&\"number\"==typeof e[1]&&\"number\"==typeof e[2]&&\"number\"==typeof e[3]}function s(e,t,r,n,i,a,o,s){var u=(e-i)*(o-i)+(t-a)*(s-a),c=(o-i)*(r-e)+(s-a)*(n-t),f=(e-i)*(r-e)+(t-a)*(n-t),l=(o-i)*(o-i)+(s-a)*(s-a),p=(r-e)*(r-e)+(n-t)*(n-t),m=(u*c-f*l)/(p*l-c*c),h=(u+m*c)/l,g=e+m*(r-e),v=t+m*(n-t),d=i+h*(o-i),y=a+h*(s-a);return g===d&&v===y?[g,v]:null}function u(e,t,r,n,i,a,o,s,u,c,f,l){var p=(e-o)*(c-o)+(t-s)*(f-s)+(r-u)*(l-u),m=(c-o)*(n-e)+(f-s)*(i-t)+(l-u)*(a-r),h=(e-o)*(n-e)+(t-s)*(i-t)+(r-u)*(a-r),g=(c-o)*(c-o)+(f-s)*(f-s)+(l-u)*(l-u),v=(n-e)*(n-e)+(i-t)*(i-t)+(a-r)*(a-r),d=(p*m-h*g)/(v*g-m*m),y=(p+d*m)/g,x=e+d*(n-e),w=t+d*(i-t),b=r+d*(a-r),N=o+y*(c-o),E=s+y*(f-s),M=u+y*(l-u);return x===N&&w===E&&b===M?[x,w,b]:null}function c(e,t,r,n,i,a,o,s,u,c){var f=(c-e*o-t*s-r*u)/(n*o+i*s+a*u-e-t-r),l=e+f*(n-e),p=t+f*(i-t),m=r+f*(a-r);return[l,p,m]}t.name=\"intersect\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,s){var h=(n(r(51)),s(\"distance\",{\"Array, Array, Array\":function(e,t,r){if(2==e.length&&2==t.length&&2==r.length){if(!i(e))throw new TypeError(\"Array with 2 numbers expected for first argument\");if(!i(t))throw new TypeError(\"Array with 2 numbers expected for second argument\");if(!i(r))throw new TypeError(\"Array with 2 numbers expected for third argument\");var n=(r[1]-r[0])/(t[1]-t[0]),a=n*n*t[0],o=-1*(n*t[0]),s=e[1];return c(e[0],e[1],a,o,s)}throw new TypeError(\"Invalid Arguments: Try again\")},\"Object, Object, Object\":function(e,t,r){if(2==Object.keys(e).length&&2==Object.keys(t).length&&2==Object.keys(r).length){if(!i(e))throw new TypeError(\"Values of pointX and pointY should be numbers\");if(!i(t))throw new TypeError(\"Values of lineOnePtX and lineOnePtY should be numbers\");if(!i(r))throw new TypeError(\"Values of lineTwoPtX and lineTwoPtY should be numbers\");if(e.hasOwnProperty(\"pointX\")&&e.hasOwnProperty(\"pointY\")&&t.hasOwnProperty(\"lineOnePtX\")&&t.hasOwnProperty(\"lineOnePtY\")&&r.hasOwnProperty(\"lineTwoPtX\")&&r.hasOwnProperty(\"lineTwoPtY\")){var n=(r.lineTwoPtY-r.lineTwoPtX)/(t.lineOnePtY-t.lineOnePtX),a=n*n*t.lineOnePtX,o=-1*(n*t.lineOnePtX),s=e.pointX;return c(e.pointX,e.pointY,a,o,s)}throw new TypeError(\"Key names do not match\")}throw new TypeError(\"Invalid Arguments: Try again\")},\"Array, Array\":function(e,t){if(2==e.length&&3==t.length){if(!i(e))throw new TypeError(\"Array with 2 numbers expected for first argument\");if(!a(t))throw new TypeError(\"Array with 3 numbers expected for second argument\");return c(e[0],e[1],t[0],t[1],t[2])}if(3==e.length&&6==t.length){if(!a(e))throw new TypeError(\"Array with 3 numbers expected for first argument\");if(!o(t))throw new TypeError(\"Array with 6 numbers expected for second argument\");return f(e[0],e[1],e[2],t[0],t[1],t[2],t[3],t[4],t[5])}if(2==e.length&&2==t.length){if(!i(e))throw new TypeError(\"Array with 2 numbers expected for first argument\");if(!i(t))throw new TypeError(\"Array with 2 numbers expected for second argument\");return l(e[0],e[1],t[0],t[1])}if(3==e.length&&3==t.length){if(!a(e))throw new TypeError(\"Array with 3 numbers expected for first argument\");if(!a(t))throw new TypeError(\"Array with 3 numbers expected for second argument\");return p(e[0],e[1],e[2],t[0],t[1],t[2])}throw new TypeError(\"Invalid Arguments: Try again\")},\"Object, Object\":function(e,t){if(2==Object.keys(e).length&&3==Object.keys(t).length){if(!i(e))throw new TypeError(\"Values of pointX and pointY should be numbers\");if(!a(t))throw new TypeError(\"Values of xCoeffLine, yCoeffLine and constant should be numbers\");if(e.hasOwnProperty(\"pointX\")&&e.hasOwnProperty(\"pointY\")&&t.hasOwnProperty(\"xCoeffLine\")&&t.hasOwnProperty(\"yCoeffLine\")&&t.hasOwnProperty(\"yCoeffLine\"))return c(e.pointX,e.pointY,t.xCoeffLine,t.yCoeffLine,t.constant);throw new TypeError(\"Key names do not match\")}if(3==Object.keys(e).length&&6==Object.keys(t).length){if(!a(e))throw new TypeError(\"Values of pointX, pointY and pointZ should be numbers\");if(!o(t))throw new TypeError(\"Values of x0, y0, z0, a, b and c should be numbers\");if(e.hasOwnProperty(\"pointX\")&&e.hasOwnProperty(\"pointY\")&&t.hasOwnProperty(\"x0\")&&t.hasOwnProperty(\"y0\")&&t.hasOwnProperty(\"z0\")&&t.hasOwnProperty(\"a\")&&t.hasOwnProperty(\"b\")&&t.hasOwnProperty(\"c\"))return f(e.pointX,e.pointY,e.pointZ,t.x0,t.y0,t.z0,t.a,t.b,t.c);throw new TypeError(\"Key names do not match\")}if(2==Object.keys(e).length&&2==Object.keys(t).length){if(!i(e))throw new TypeError(\"Values of pointOneX and pointOneY should be numbers\");if(!i(t))throw new TypeError(\"Values of pointTwoX and pointTwoY should be numbers\");if(e.hasOwnProperty(\"pointOneX\")&&e.hasOwnProperty(\"pointOneY\")&&t.hasOwnProperty(\"pointTwoX\")&&t.hasOwnProperty(\"pointTwoY\"))return l(e.pointOneX,e.pointOneY,t.pointTwoX,t.pointTwoY);throw new TypeError(\"Key names do not match\")}if(3==Object.keys(e).length&&3==Object.keys(t).length){if(!a(e))throw new TypeError(\"Values of pointOneX, pointOneY and pointOneZ should be numbers\");if(!a(t))throw new TypeError(\"Values of pointTwoX, pointTwoY and pointTwoZ should be numbers\");if(e.hasOwnProperty(\"pointOneX\")&&e.hasOwnProperty(\"pointOneY\")&&e.hasOwnProperty(\"pointOneZ\")&&t.hasOwnProperty(\"pointTwoX\")&&t.hasOwnProperty(\"pointTwoY\")&&t.hasOwnProperty(\"pointTwoZ\"))return p(e.pointOneX,e.pointOneY,e.pointOneZ,t.pointTwoX,t.pointTwoY,t.pointTwoZ);throw new TypeError(\"Key names do not match\")}throw new TypeError(\"Invalid Arguments: Try again\")},Array:function(e){if(!u(e))throw new TypeError(\"Incorrect array format entered for pairwise distance calculation\");return m(e)}}));return h}function i(e){return e.constructor!==Array&&(e=s(e)),\"number\"==typeof e[0]&&\"number\"==typeof e[1]}function a(e){return e.constructor!==Array&&(e=s(e)),\"number\"==typeof e[0]&&\"number\"==typeof e[1]&&\"number\"==typeof e[2]}function o(e){return e.constructor!==Array&&(e=s(e)),\"number\"==typeof e[0]&&\"number\"==typeof e[1]&&\"number\"==typeof e[2]&&\"number\"==typeof e[3]&&\"number\"==typeof e[4]&&\"number\"==typeof e[5]}function s(e){for(var t=Object.keys(e),r=[],n=0;n<t.length;n++)r.push(e[t[n]]);return r}function u(e){if(2==e[0].length&&\"number\"==typeof e[0][0]&&\"number\"==typeof e[0][1]){for(var t in e)if(2!=e[t].length||\"number\"!=typeof e[t][0]||\"number\"!=typeof e[t][1])return!1}else{if(3!=e[0].length||\"number\"!=typeof e[0][0]||\"number\"!=typeof e[0][1]||\"number\"!=typeof e[0][2])return!1;for(var t in e)if(3!=e[t].length||\"number\"!=typeof e[t][0]||\"number\"!=typeof e[t][1]||\"number\"!=typeof e[t][2])return!1}return!0}function c(e,t,r,n,i){var a=Math.abs(r*e+n*t+i),o=Math.pow(r*r+n*n,.5),s=a/o;return s}function f(e,t,r,n,i,a,o,s,u){var c=[(i-t)*u-(a-r)*s,(a-r)*o-(n-e)*u,(n-e)*s-(i-t)*o];c=Math.pow(c[0]*c[0]+c[1]*c[1]+c[2]*c[2],.5);var f=Math.pow(o*o+s*s+u*u,.5),l=c/f;return l}function l(e,t,r,n){var i=n-t,a=r-e,o=i*i+a*a,s=Math.pow(o,.5);return s}function p(e,t,r,n,i,a){var o=a-r,s=i-t,u=n-e,c=o*o+s*s+u*u,f=Math.pow(c,.5);return f}function m(e){for(var t=[],r=0;r<e.length-1;r++)for(var n=r+1;n<e.length;n++)2==e[0].length?t.push(l(e[r][0],e[r][1],e[n][0],e[n][1])):3==e[0].length&&t.push(p(e[r][0],e[r][1],e[r][2],e[n][0],e[n][1],e[n][2]));return t}t.name=\"distance\",t.factory=n},function(e,t,r){e.exports=[r(408),r(409),r(410),r(411)]},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=r(30),o=n(r(51)),s=n(r(368)),u=n(r(409)),c=n(r(347)),f=n(r(360)),l=n(r(298)),p=n(r(56)),m=n(r(57)),h=i(\"and\",{\"number, number\":function(e,t){return!(!e||!t)},\"Complex, Complex\":function(e,t){return!(0===e.re&&0===e.im||0===t.re&&0===t.im)},\"BigNumber, BigNumber\":function(e,t){return!(e.isZero()||t.isZero()||e.isNaN()||t.isNaN())},\"Unit, Unit\":function(e,t){return 0!==e.value&&null!==e.value&&0!==t.value&&null!==t.value},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=f(e,t,h,!1);break;default:r=c(t,e,h,!0)}break;default:switch(t.storage()){case\"sparse\":r=c(e,t,h,!1);break;default:r=p(e,t,h)}}return r},\"Array, Array\":function(e,t){return h(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return h(o(e),t)},\"Matrix, Array\":function(e,t){return h(e,o(t))},\"Matrix, any\":function(e,t){if(u(t))return s(e.size(),e.storage());var r;switch(e.storage()){case\"sparse\":r=l(e,t,h,!1);break;default:r=m(e,t,h,!1)}return r},\"any, Matrix\":function(e,t){if(u(e))return s(e.size(),e.storage());var r;switch(t.storage()){case\"sparse\":r=l(t,e,h,!0);break;default:r=m(t,e,h,!0)}return r},\"Array, any\":function(e,t){return h(o(e),t).valueOf()},\"any, Array\":function(e,t){return h(e,o(t)).valueOf()}});return h.toTex=\"\\\\left(${args[0]}\"+a.operators.and+\"${args[1]}\\\\right)\",h}t.name=\"and\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=r(30),s=a(\"not\",{number:function(e){return!e},Complex:function(e){return 0===e.re&&0===e.im},BigNumber:function(e){return e.isZero()||e.isNaN()},Unit:function(e){return null===e.value||0==e.value},\"Array | Matrix\":function(e){return i(e,s)}});return s.toTex=o.operators.not+\"\\\\left(${args[0]}\\\\right)\",s}var i=r(19);t.name=\"not\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=r(30),o=n(r(51)),s=n(r(60)),u=n(r(303)),c=n(r(62)),f=n(r(56)),l=n(r(57)),p=i(\"or\",{\"number, number\":function(e,t){return!(!e&&!t)},\"Complex, Complex\":function(e,t){return 0!==e.re||0!==e.im||0!==t.re||0!==t.im},\"BigNumber, BigNumber\":function(e,t){return!e.isZero()&&!e.isNaN()||!t.isZero()&&!t.isNaN()},\"Unit, Unit\":function(e,t){return 0!==e.value&&null!==e.value||0!==t.value&&null!==t.value},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=u(e,t,p);break;default:r=s(t,e,p,!0)}break;default:switch(t.storage()){case\"sparse\":r=s(e,t,p,!1);break;default:r=f(e,t,p)}}return r},\"Array, Array\":function(e,t){return p(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return p(o(e),t)},\"Matrix, Array\":function(e,t){return p(e,o(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=c(e,t,p,!1);break;default:r=l(e,t,p,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=c(t,e,p,!0);break;default:r=l(t,e,p,!0)}return r},\"Array, any\":function(e,t){return l(o(e),t,p,!1).valueOf()},\"any, Array\":function(e,t){return l(o(t),e,p,!0).valueOf()}});return p.toTex=\"\\\\left(${args[0]}\"+a.operators.or+\"${args[1]}\\\\right)\",p}t.name=\"or\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=r(30),o=n(r(51)),s=n(r(60)),u=n(r(61)),c=n(r(62)),f=n(r(56)),l=n(r(57)),p=i(\"xor\",{\"number, number\":function(e,t){return!!(!!e^!!t)},\"Complex, Complex\":function(e,t){return!!((0!==e.re||0!==e.im)^(0!==t.re||0!==t.im))},\"BigNumber, BigNumber\":function(e,t){return!!((!e.isZero()&&!e.isNaN())^(!t.isZero()&&!t.isNaN()))},\"Unit, Unit\":function(e,t){return!!((0!==e.value&&null!==e.value)^(0!==t.value&&null!==t.value))},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=u(e,t,p);break;default:r=s(t,e,p,!0)}break;default:switch(t.storage()){case\"sparse\":r=s(e,t,p,!1);break;default:r=f(e,t,p)}}return r},\"Array, Array\":function(e,t){return p(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return p(o(e),t)},\"Matrix, Array\":function(e,t){return p(e,o(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=c(e,t,p,!1);break;default:r=l(e,t,p,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=c(t,e,p,!0);break;default:r=l(t,e,p,!0)}return r},\"Array, any\":function(e,t){return l(o(e),t,p,!1).valueOf()},\"any, Array\":function(e,t){return l(o(t),e,p,!0).valueOf()}});return p.toTex=\"\\\\left(${args[0]}\"+a.operators.xor+\"${args[1]}\\\\right)\",p}t.name=\"xor\",t.factory=n},function(e,t,r){e.exports=[r(279),r(413),r(301),r(414),r(415),r(304),r(416),r(299),r(417),r(308),r(418),r(419),r(420),r(310),r(365),r(322),r(368)]},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e,t){var r=i(e),n=i(t);if(1!=r.length||1!=n.length||3!=r[0]||3!=n[0])throw new RangeError(\"Vectors with length 3 expected (Size A = [\"+r.join(\", \")+\"], B = [\"+n.join(\", \")+\"])\");return[u(c(e[1],t[2]),c(e[2],t[1])),u(c(e[2],t[0]),c(e[0],t[2])),u(c(e[0],t[1]),c(e[1],t[0]))]}var s=n(r(51)),u=n(r(302)),c=n(r(296)),f=a(\"cross\",{\"Matrix, Matrix\":function(e,t){return s(o(e.toArray(),t.toArray()))},\"Matrix, Array\":function(e,t){return s(o(e.toArray(),t))},\"Array, Matrix\":function(e,t){return s(o(e,t.toArray()))},\"Array, Array\":o});return f.toTex=\"\\\\left(${args[0]}\\\\right)\\\\times\\\\left(${args[1]}\\\\right)\",f}var i=r(40).size;t.name=\"cross\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,s){function u(e,t,r,n){if(!o(t))throw new TypeError(\"Second parameter in function diag must be an integer\");var i=t>0?t:0,a=0>t?-t:0;switch(r.length){case 1:return c(e,t,n,r[0],a,i);case 2:return f(e,t,n,r,a,i)}throw new RangeError(\"Matrix for function diag must be 2 dimensional\")}function c(t,r,n,i,a,o){var s=[i+a,i+o],u=e.Matrix.storage(n||\"dense\"),c=u.diagonal(s,t,r);return null!==n?c:c.valueOf()}function f(e,t,r,n,i,o){if(e&&e.isMatrix===!0){var s=e.diagonal(t);return null!==r?r!==s.storage()?l(s,r):s:s.valueOf()}for(var u=Math.min(n[0]-i,n[1]-o),c=[],f=0;u>f;f++)c[f]=a(e[f+i][f+o]);return null!==r?l(c):c}var l=n(r(51)),p=s(\"diag\",{Array:function(e){return u(e,0,i.size(e),null)},\"Array, number\":function(e,t){return u(e,t,i.size(e),null)},\"Array, BigNumber\":function(e,t){return u(e,t.toNumber(),i.size(e),null)},\"Array, string\":function(e,t){return u(e,0,i.size(e),t)},\"Array, number, string\":function(e,t,r){return u(e,t,i.size(e),r)},\"Array, BigNumber, string\":function(e,t,r){return u(e,t.toNumber(),i.size(e),r)},Matrix:function(e){return u(e,0,e.size(),e.storage())},\"Matrix, number\":function(e,t){return u(e,t,e.size(),e.storage())},\"Matrix, BigNumber\":function(e,t){return u(e,t.toNumber(),e.size(),e.storage())},\"Matrix, string\":function(e,t){return u(e,0,e.size(),t)},\"Matrix, number, string\":function(e,t,r){return u(e,t,e.size(),r)},\"Matrix, BigNumber, string\":function(e,t,r){return u(e,t.toNumber(),e.size(),r)}});return p.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",p}var i=r(40),a=r(3).clone,o=r(6).isInteger;t.name=\"diag\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e,t){var r=i(e),n=i(t),a=r[0];if(1!==r.length||1!==n.length)throw new RangeError(\"Vector expected\");if(r[0]!=n[0])throw new RangeError(\"Vectors must have equal length (\"+r[0]+\" != \"+n[0]+\")\");if(0==a)throw new RangeError(\"Cannot calculate the dot product of empty vectors\");for(var o=0,c=0;a>c;c++)o=s(o,u(e[c],t[c]));return o}var s=n(r(50)),u=n(r(296)),c=a(\"dot\",{\"Matrix, Matrix\":function(e,t){return o(e.toArray(),t.toArray())},\"Matrix, Array\":function(e,t){return o(e.toArray(),t)},\"Array, Matrix\":function(e,t){return o(e,t.toArray())},\"Array, Array\":o});return c.toTex=\"\\\\left(${args[0]}\\\\cdot${args[1]}\\\\right)\",c}var i=r(40).size;t.name=\"dot\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=n(r(51)),u=o(\"flatten\",{Array:function(e){return a(i(e))},Matrix:function(e){var t=a(i(e.toArray()));return s(t)}});return u.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",u}var i=r(3).clone,a=r(40).flatten;t.name=\"flatten\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(t,r){var n=u(t),i=n?new e.BigNumber(1):1;if(c(t),r){var o=f(r);return t.length>0?o.resize(t,i):o}var s=[];return t.length>0?a(s,t,i):s}function u(e){var t=!1;return e.forEach(function(e,r,n){e&&e.isBigNumber===!0&&(t=!0,n[r]=e.toNumber())}),t}function c(e){e.forEach(function(e){if(\"number\"!=typeof e||!i(e)||0>e)throw new Error(\"Parameters in function ones must be positive integers\")})}var f=n(r(51)),l=o(\"ones\",{\"\":function(){return\"array\"===t.matrix?s([]):s([],\"default\")},\"...number | BigNumber | string\":function(e){var r=e[e.length-1];if(\"string\"==typeof r){var n=e.pop();return s(e,n)}return\"array\"===t.matrix?s(e):s(e,\"default\")},Array:s,Matrix:function(e){var t=e.storage();return s(e.valueOf(),t)},\"Array | Matrix, string\":function(e,t){return s(e.valueOf(),t)}});return l.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",l}var i=r(6).isInteger,a=r(40).resize;t.name=\"ones\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,f){function l(e,t,r){if(void 0!==r){if(\"string\"!=typeof r||1!==r.length)throw new TypeError(\"Single character expected as defaultValue\")}else r=\" \";if(1!==t.length)throw new i(t.length,1);var n=t[0];if(\"number\"!=typeof n||!o(n))throw new TypeError(\"Invalid size, must contain positive integers (size: \"+s(t)+\")\");if(e.length>n)return e.substring(0,n);if(e.length<n){for(var a=e,u=0,c=n-e.length;c>u;u++)a+=r;return a}return e}var p=n(r(51)),m=function(e,r,n){if(2!=arguments.length&&3!=arguments.length)throw new a(\"resize\",arguments.length,2,3);if(r&&r.isMatrix===!0&&(r=r.valueOf()),r.length&&r[0]&&r[0].isBigNumber===!0&&(r=r.map(function(e){return e&&e.isBigNumber===!0?e.toNumber():e})),e&&e.isMatrix===!0)return e.resize(r,n,!0);if(\"string\"==typeof e)return l(e,r,n);var i=Array.isArray(e)?!1:\"array\"!==t.matrix;if(0==r.length){for(;Array.isArray(e);)e=e[0];return u(e)}Array.isArray(e)||(e=[e]),e=u(e);var o=c.resize(e,r,n);return i?p(o):o};return m.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",m}var i=r(42),a=r(11),o=r(6).isInteger,s=r(23).format,u=r(3).clone,c=r(40);t.name=\"resize\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(51)),s=a(\"size\",{Matrix:function(e){return o(e.size())},Array:i.size,string:function(e){return\"array\"===t.matrix?[e.length]:o([e.length])},\"number | Complex | BigNumber | Unit | boolean | null\":function(e){return\"array\"===t.matrix?[]:o([])}});return s.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",s}var i=r(40);t.name=\"size\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=n(r(51)),u=o(\"squeeze\",{Array:function(e){return a.squeeze(i.clone(e))},Matrix:function(e){var t=a.squeeze(e.toArray());return Array.isArray(t)?s(t):t},any:function(e){return i.clone(e)}});return u.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",u}var i=r(3),a=r(40);t.name=\"squeeze\",t.factory=n},function(e,t,r){e.exports=[r(394),r(392),r(393),r(422),r(425),r(426),r(427),r(429),r(430)]},function(e,t,r){\"use strict\";function n(e,t,n,i){function a(e,t){var r=t.size().length,n=e.size().length;if(r>1)throw new Error(\"first object must be one dimensional\");if(n>1)throw new Error(\"second object must be one dimensional\");if(r!==n)throw new Error(\"Length of two vectors must be equal\");var i=u(e);if(0===i)throw new Error(\"Sum of elements in first object must be non zero\");var a=u(t);if(0===a)throw new Error(\"Sum of elements in second object must be non zero\");var o=s(e,u(e)),m=s(t,u(t)),h=u(c(o,l(f(o,m))));return p(h)?h:Number.NaN}var o=n(r(51)),s=n(r(294)),u=n(r(423)),c=n(r(296)),f=n(r(346)),l=n(r(352)),p=n(r(424)),m=i(\"kldivergence\",{\"Array, Array\":function(e,t){return a(o(e),o(t))},\"Matrix, Array\":function(e,t){return a(e,o(t))},\"Array, Matrix\":function(e,t){return a(o(e),t)},\"Matrix, Matrix\":function(e,t){return a(e,t)}});return m}t.name=\"kldivergence\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(r){var n=void 0;if(i(r,function(e){n=void 0===n?e:s(n,e)}),void 0===n)switch(t.number){case\"number\":return 0;case\"bignumber\":return new e.BigNumber(0);case\"fraction\":return new e.Fraction(0);default:return 0}return n}var s=n(r(52)),u=a(\"sum\",{\"Array | Matrix\":function(e){return o(e)},\"Array | Matrix, number | BigNumber\":function(){throw new Error(\"sum(A, dim) is not yet supported\")},\"...\":function(){return o(arguments)}});return u.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",u}var i=r(290);t.name=\"sum\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"isNumeric\",{\"number | BigNumber | Fraction | boolean\":function(){return!0},\"Complex | Unit | string\":function(){return!1},\"Array | Matrix\":function(e){return i(e,a)}});return a}var i=r(19);r(6);t.name=\"isNumeric\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(50)),s=n(r(296)),u=n(r(294)),c=n(r(392)),f=n(r(396)),l=n(r(358));return a(\"multinomial\",{\"Array | Matrix\":function(e){var t=0,r=1;return i(e,function(e){if(!f(e)||!l(e))throw new TypeError(\"Positive integer value expected in function multinomial\");t=o(t,e),r=s(r,c(e))}),u(c(t),r)}})}var i=r(290);t.name=\"multinomial\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=n(r(392)),u=o(\"permutations\",{\"number | BigNumber\":s,\"number, number\":function(e,t){var r,n;if(!a(e)||0>e)throw new TypeError(\"Positive integer value expected in function permutations\");if(!a(t)||0>t)throw new TypeError(\"Positive integer value expected in function permutations\");if(t>e)throw new TypeError(\"second argument k must be less than or equal to first argument n\");for(r=1,n=e-t+1;e>=n;n++)r*=n;return r},\"BigNumber, BigNumber\":function(t,r){var n,a;if(!i(t)||!i(r))throw new TypeError(\"Positive integer value expected in function permutations\");if(r.gt(t))throw new TypeError(\"second argument k must be less than or equal to first argument n\");for(n=new e.BigNumber(1),a=t.minus(r).plus(1);a.lte(t);a=a.plus(1))n=n.times(a);return n}});return u.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",u}function i(e){return e.isInteger()&&e.gte(0)}var a=r(6).isInteger;t.name=\"permutations\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(428)),o=a(\"uniform\").pickRandom;return o.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",o}t.name=\"pickRandom\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(e){if(!f.hasOwnProperty(e))throw new Error(\"Unknown distribution \"+e);var t=Array.prototype.slice.call(arguments,1),r=f[e].apply(this,t);return function(e){var t={random:function(e,t,n){var s,c,f;if(arguments.length>3)throw new i(\"random\",arguments.length,0,3);if(1===arguments.length?a(e)?s=e:f=e:2===arguments.length?a(e)?(s=e,f=t):(c=e,f=t):(s=e,c=t,f=n),void 0===f&&(f=1),void 0===c&&(c=0),void 0!==s){var l=o(s.valueOf(),c,f,r);return s&&s.isMatrix===!0?u(l):l}return r(c,f)},randomInt:function(e,t,r){var s,c,f;if(arguments.length>3||arguments.length<1)throw new i(\"randomInt\",arguments.length,1,3);if(1===arguments.length?a(e)?s=e:f=e:2===arguments.length?a(e)?(s=e,f=t):(c=e,f=t):(s=e,c=t,f=r),void 0===c&&(c=0),void 0!==s){var l=o(s.valueOf(),c,f,n);return s&&s.isMatrix===!0?u(l):l}return n(c,f)},pickRandom:function(e){if(1!==arguments.length)throw new i(\"pickRandom\",arguments.length,1);if(e&&e.isMatrix===!0)e=e.valueOf();else if(!Array.isArray(e))throw new TypeError(\"Unsupported type of value in function pickRandom\");if(c.size(e).length>1)throw new Error(\"Only one dimensional vectors supported\");return e[Math.floor(Math.random()*e.length)]}},r=function(t,r){return t+e()*(r-t)},n=function(t,r){return Math.floor(t+e()*(r-t))},o=function(e,t,r,n){var i,a,s=[];if(e=e.slice(0),e.length>1)for(a=0,i=e.shift();i>a;a++)s.push(o(e,t,r,n));else for(a=0,i=e.shift();i>a;a++)s.push(n(t,r));return s};return t}(r)}var u=n(r(51)),c=r(40),f={uniform:function(){return Math.random},normal:function(){return function(){for(var e,t,r=-1;0>r||r>1;)e=Math.random(),t=Math.random(),r=1/6*Math.pow(-2*Math.log(e),.5)*Math.cos(2*Math.PI*t)+.5;return r}}};return s.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",s}var i=r(11),a=r(288);t.name=\"distribution\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(428)),o=a(\"uniform\").random;return o.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",o}t.name=\"random\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(428)),o=a(\"uniform\").randomInt;return o.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",o}t.name=\"randomInt\",t.factory=n},function(e,t,r){e.exports=[r(432),r(433),r(434),r(63),r(329),r(59),r(435),r(436)]},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(51)),s=n(r(60)),u=n(r(303)),c=n(r(62)),f=n(r(56)),l=n(r(57)),p=a(\"compare\",{\"boolean, boolean\":function(e,t){return e===t?0:e>t?1:-1},\"number, number\":function(e,r){return e===r||i(e,r,t.epsilon)?0:e>r?1:-1},\"BigNumber, BigNumber\":function(t,r){return new e.BigNumber(t.cmp(r))},\"Fraction, Fraction\":function(t,r){return new e.Fraction(t.compare(r))},\"Complex, Complex\":function(){throw new TypeError(\"No ordering relation is defined for complex numbers\")},\"Unit, Unit\":function(e,r){if(!e.equalBase(r))throw new Error(\"Cannot compare units with different base\");return e.value===r.value||i(e.value,r.value,t.epsilon)?0:e.value>r.value?1:-1},\"string, string\":function(e,t){return e===t?0:e>t?1:-1},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=u(e,t,p);break;default:r=s(t,e,p,!0)}break;default:switch(t.storage()){case\"sparse\":r=s(e,t,p,!1);break;default:r=f(e,t,p)}}return r},\"Array, Array\":function(e,t){return p(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return p(o(e),t)},\"Matrix, Array\":function(e,t){return p(e,o(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=c(e,t,p,!1);break;default:r=l(e,t,p,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=c(t,e,p,!0);break;default:r=l(t,e,p,!0)}return r},\"Array, any\":function(e,t){return l(o(e),t,p,!1).valueOf()},\"any, Array\":function(e,t){return l(o(t),e,p,!0).valueOf()}});return p.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",p}var i=r(6).nearlyEqual;t.name=\"compare\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){function a(e,t){if(Array.isArray(e)){if(Array.isArray(t)){var r=e.length;if(r!==t.length)return!1;for(var n=0;r>n;n++)if(!a(e[n],t[n]))return!1;return!0}return!1}return Array.isArray(t)?!1:o(e,t)}var o=n(r(434)),s=i(\"deepEqual\",{\"any, any\":function(e,t){return a(e.valueOf(),t.valueOf())}});return s.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",s}t.name=\"deepEqual\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=n(r(51)),o=n(r(48)),s=n(r(60)),u=n(r(61)),c=n(r(62)),f=n(r(56)),l=n(r(57)),p=r(30),m=i(\"equal\",{\"any, any\":function(e,t){return null===e?null===t:null===t?null===e:void 0===e?void 0===t:void 0===t?void 0===e:o(e,t)},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=u(e,t,o);break;default:r=s(t,e,o,!0)}break;default:switch(t.storage()){case\"sparse\":r=s(e,t,o,!1);break;default:r=f(e,t,o)}}return r},\"Array, Array\":function(e,t){return m(a(e),a(t)).valueOf()},\"Array, Matrix\":function(e,t){return m(a(e),t)},\"Matrix, Array\":function(e,t){return m(e,a(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=c(e,t,o,!1);break;default:r=l(e,t,o,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=c(t,e,o,!0);break;default:r=l(t,e,o,!0)}return r},\"Array, any\":function(e,t){return l(a(e),t,o,!1).valueOf()},\"any, Array\":function(e,t){return l(a(t),e,o,!0).valueOf()}});return m.toTex=\"\\\\left(${args[0]}\"+p.operators.equal+\"${args[1]}\\\\right)\",m}t.name=\"equal\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(51)),s=n(r(60)),u=n(r(61)),c=n(r(62)),f=n(r(56)),l=n(r(57)),p=r(30),m=a(\"smallerEq\",{\"boolean, boolean\":function(e,t){return t>=e},\"number, number\":function(e,r){return r>=e||i(e,r,t.epsilon)},\"BigNumber, BigNumber\":function(e,t){return e.lte(t)},\"Fraction, Fraction\":function(e,t){return 1!==e.compare(t)},\"Complex, Complex\":function(){throw new TypeError(\"No ordering relation is defined for complex numbers\");\n},\"Unit, Unit\":function(e,r){if(!e.equalBase(r))throw new Error(\"Cannot compare units with different base\");return e.value<=r.value||i(e.value,r.value,t.epsilon)},\"string, string\":function(e,t){return t>=e},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=u(e,t,m);break;default:r=s(t,e,m,!0)}break;default:switch(t.storage()){case\"sparse\":r=s(e,t,m,!1);break;default:r=f(e,t,m)}}return r},\"Array, Array\":function(e,t){return m(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return m(o(e),t)},\"Matrix, Array\":function(e,t){return m(e,o(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=c(e,t,m,!1);break;default:r=l(e,t,m,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=c(t,e,m,!0);break;default:r=l(t,e,m,!0)}return r},\"Array, any\":function(e,t){return l(o(e),t,m,!1).valueOf()},\"any, Array\":function(e,t){return l(o(t),e,m,!0).valueOf()}});return m.toTex=\"\\\\left(${args[0]}\"+p.operators.smallerEq+\"${args[1]}\\\\right)\",m}var i=r(6).nearlyEqual;t.name=\"smallerEq\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(51)),s=n(r(60)),u=n(r(61)),c=n(r(62)),f=n(r(56)),l=n(r(57)),p=r(30),m=a(\"unequal\",{\"any, any\":function(e,t){return null===e?null!==t:null===t?null!==e:void 0===e?void 0!==t:void 0===t?void 0!==e:h(e,t)},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=u(e,t,h);break;default:r=s(t,e,h,!0)}break;default:switch(t.storage()){case\"sparse\":r=s(e,t,h,!1);break;default:r=f(e,t,h)}}return r},\"Array, Array\":function(e,t){return m(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return m(o(e),t)},\"Matrix, Array\":function(e,t){return m(e,o(t))},\"Matrix, any\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=c(e,t,h,!1);break;default:r=l(e,t,h,!1)}return r},\"any, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=c(t,e,h,!0);break;default:r=l(t,e,h,!0)}return r},\"Array, any\":function(e,t){return l(o(e),t,h,!1).valueOf()},\"any, Array\":function(e,t){return l(o(t),e,h,!0).valueOf()}}),h=a(\"_unequal\",{\"boolean, boolean\":function(e,t){return e!==t},\"number, number\":function(e,r){return!i(e,r,t.epsilon)},\"BigNumber, BigNumber\":function(e,t){return!e.eq(t)},\"Fraction, Fraction\":function(e,t){return 0!==e.compare(t)},\"Complex, Complex\":function(e,r){return!i(e.re,r.re,t.epsilon)||!i(e.im,r.im,t.epsilon)},\"Unit, Unit\":function(e,r){if(!e.equalBase(r))throw new Error(\"Cannot compare units with different base\");return!i(e.value,r.value,t.epsilon)},\"string, string\":function(e,t){return e!==t}});return m.toTex=\"\\\\left(${args[0]}\"+p.operators.unequal+\"${args[1]}\\\\right)\",m}var i=r(6).nearlyEqual;t.name=\"unequal\",t.factory=n},function(e,t,r){e.exports=[r(289),r(293),r(438),r(306),r(440),r(441),r(442),r(443),r(423),r(444)]},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e){e=i(e.valueOf());var t=e.length;if(0==t)throw new Error(\"Cannot calculate median of an empty array\");if(t%2==0){for(var r=t/2-1,n=f(e,r+1),a=e[r],o=0;r>o;++o)c(e[o],a)>0&&(a=e[o]);return m(a,n)}var s=f(e,(t-1)/2);return p(s)}var s=n(r(52)),u=n(r(295)),c=n(r(432)),f=n(r(439)),l=a(\"median\",{\"Array | Matrix\":o,\"Array | Matrix, number | BigNumber\":function(e,t){throw new Error(\"median(A, dim) is not yet supported\")},\"...\":function(){return o(Array.prototype.slice.call(arguments))}}),p=a({\"number | BigNumber | Unit\":function(e){return e}}),m=a({\"number | BigNumber | Unit, number | BigNumber | Unit\":function(e,t){return u(s(e,t),2)}});return l.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",l}var i=r(40).flatten;t.name=\"median\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e,t){return-c(e,t)}function s(e,t,r){if(!i(t)||0>t)throw new Error(\"k must be a non-negative integer\");if(e&&e.isMatrix){var n=e.size();if(n.length>1)throw new Error(\"Only one dimensional matrices supported\");return u(e.valueOf(),t,r)}return Array.isArray(e)?u(e,t,r):void 0}function u(e,t,r){if(t>=e.length)throw new Error(\"k out of bounds\");for(var n=0,i=e.length-1;i>n;){for(var a=n,o=i,s=e[Math.floor(Math.random()*(i-n+1))+n];o>a;)if(r(e[a],s)>=0){var u=e[o];e[o]=e[a],e[a]=u,--o}else++a;r(e[a],s)>0&&--a,a>=t?i=a:n=a+1}return e[t]}var c=n(r(432));return a(\"partitionSelect\",{\"Array | Matrix, number\":function(e,t){return s(e,t,c)},\"Array | Matrix, number, string\":function(e,t,r){if(\"asc\"===r)return s(e,t,c);if(\"desc\"===r)return s(e,t,o);throw new Error('Compare string must be \"asc\" or \"desc\"')},\"Array | Matrix, number, function\":s})}var i=r(6).isInteger;t.name=\"partitionSelect\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){function a(e){e=i(e.valueOf());var t=e.length;if(0==t)throw new Error(\"Cannot calculate mode of an empty array\");var r={},n=[],a=0;for(var o in e)e[o]in r||(r[e[o]]=0),r[e[o]]++,r[e[o]]==a?n.push(e[o]):r[e[o]]>a&&(a=r[e[o]],n=[e[o]]);return n}var o=n(\"mode\",{\"Array | Matrix\":a,\"...\":function(){return a(Array.prototype.slice.call(arguments))}});return o}var i=r(40).flatten;t.name=\"mode\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e){var t=void 0;if(i(e,function(e){t=void 0===t?e:s(t,e)}),void 0===t)throw new Error(\"Cannot calculate prod of an empty array\");return t}var s=n(r(297)),u=a(\"prod\",{\"Array | Matrix\":o,\"Array | Matrix, number | BigNumber\":function(e,t){throw new Error(\"prod(A, dim) is not yet supported\")},\"...\":function(){return o(arguments)}});return u.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",u}var i=r(290);t.name=\"prod\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,u){function c(t,r,n){var o,u,c;if(arguments.length<2||arguments.length>3)throw new SyntaxError(\"Function quantileSeq requires two or three parameters\");if(s(t)){if(n=n||!1,\"boolean\"==typeof n){if(u=t.valueOf(),a(r)){if(0>r)throw new Error(\"N/prob must be non-negative\");if(1>=r)return f(u,r,n);if(r>1){if(!i(r))throw new Error(\"N must be a positive integer\");var l=r+1;o=new Array(r);for(var p=0;r>p;)o[p]=f(u,++p/l,n);return o}}if(r&&r.isBigNumber){if(r.isNegative())throw new Error(\"N/prob must be non-negative\");if(c=r.constructor.ONE,r.lte(c))return f(u,r,n);if(r.gt(c)){if(!r.isInteger())throw new Error(\"N must be a positive integer\");var m=r.toNumber();if(m>4294967295)throw new Error(\"N must be less than or equal to 2^32-1, as that is the maximum length of an Array\");var l=new e.BigNumber(m+1);o=new Array(m);for(var p=0;m>p;)o[p]=f(u,new e.BigNumber(++p).div(l),n);return o}}if(Array.isArray(r)){o=new Array(r.length);for(var p=0;p<o.length;++p){var h=r[p];if(a(h)){if(0>h||h>1)throw new Error(\"Probability must be between 0 and 1, inclusive\")}else{if(!h||!h.isBigNumber)throw new TypeError(\"Unexpected type of argument in function quantileSeq\");if(c=h.constructor.ONE,h.isNegative()||h.gt(c))throw new Error(\"Probability must be between 0 and 1, inclusive\")}o[p]=f(u,h,n)}return o}throw new TypeError(\"Unexpected type of argument in function quantileSeq\")}throw new TypeError(\"Unexpected type of argument in function quantileSeq\")}throw new TypeError(\"Unexpected type of argument in function quantileSeq\")}function f(e,t,r){var n=o(e),i=n.length;if(0===i)throw new Error(\"Cannot calculate quantile of an empty sequence\");if(a(t)){var s=t*(i-1),u=s%1;if(0===u){var c=r?n[s]:m(n,s);return g(c),c}var f,v,d=Math.floor(s);if(r)f=n[d],v=n[d+1];else{v=m(n,d+1),f=n[d];for(var y=0;d>y;++y)h(n[y],f)>0&&(f=n[y])}return g(f),g(v),l(p(f,1-u),p(v,u))}var s=t.times(i-1);if(s.isInteger()){s=s.toNumber();var c=r?n[s]:m(n,s);return g(c),c}var f,v,d=s.floor(),u=s.minus(d),x=d.toNumber();if(r)f=n[x],v=n[x+1];else{v=m(n,x+1),f=n[x];for(var y=0;x>y;++y)h(n[y],f)>0&&(f=n[y])}g(f),g(v);var w=u.constructor.ONE;return l(p(f,w.minus(u)),p(v,u))}var l=n(r(50)),p=n(r(296)),m=n(r(439)),h=n(r(432)),g=u({\"number | BigNumber | Unit\":function(e){return e}});return c}var i=r(6).isInteger,a=r(6).isNumber,o=r(40).flatten,s=r(288);t.name=\"quantileSeq\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,i){function a(e,t){if(0==e.length)throw new SyntaxError(\"Function std requires one or more parameters (0 provided)\");return o(s.apply(null,arguments))}var o=n(r(357)),s=n(r(444)),u=i(\"std\",{\"Array | Matrix\":a,\"Array | Matrix, string\":a,\"...\":function(){return a(Array.prototype.slice.call(arguments))}});return u.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",u}t.name=\"std\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(t,r){var n=0,i=0;if(0==t.length)throw new SyntaxError(\"Function var requires one or more parameters (0 provided)\");if(a(t,function(e){n=u(n,e),i++}),0===i)throw new Error(\"Cannot calculate var of an empty array\");var o=l(n,i);switch(n=0,a(t,function(e){var t=c(e,o);n=u(n,f(t,t))}),r){case\"uncorrected\":return l(n,i);case\"biased\":return l(n,i+1);case\"unbiased\":var s=n&&n.isBigNumber===!0?new e.BigNumber(0):0;return 1==i?s:l(n,i-1);default:throw new Error('Unknown normalization \"'+r+'\". Choose \"unbiased\" (default), \"uncorrected\", or \"biased\".')}}var u=n(r(52)),c=n(r(302)),f=n(r(297)),l=n(r(295)),p=o(\"variance\",{\"Array | Matrix\":function(e){return s(e,i)},\"Array | Matrix, string\":s,\"...\":function(){return s(arguments,i)}});return p.toTex=\"\\\\mathrm{Var}\\\\left(${args}\\\\right)\",p}var i=\"unbiased\",a=r(290);t.name=\"var\",t.factory=n},function(e,t,r){e.exports=[r(446),r(456),r(458),r(460),r(463),r(465),r(467),r(468),r(464),r(466),r(459),r(469),r(462),r(471),r(472),r(475),r(477),r(479),r(480),r(481),r(482),r(483),r(474),r(484),r(485)]},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(t){var r=new e.Complex(t.im*t.im-t.re*t.re+1,-2*t.re*t.im),n=u(r),i=new e.Complex(n.re-t.im,n.im+t.re),a=c(i);return new e.Complex(1.5707963267948966-a.im,a.re)}var u=o.find(n(r(357)),[\"Complex\"]),c=o.find(n(r(352)),[\"Complex\"]),f=o(\"acos\",{number:function(r){return r>=-1&&1>=r||t.predictable?Math.acos(r):s(new e.Complex(r,0))},Complex:s,BigNumber:function(t){return a(t,e.BigNumber,!1)},\"Array | Matrix\":function(e){return i(e,f)}});return f.toTex=\"\\\\cos^{-1}\\\\left(${args[0]}\\\\right)\",f}var i=r(19),a=r(447);t.name=\"acos\",t.factory=n},function(e,t,r){var n=r(77).pi,i=r(448);e.exports=function(e,t,r){if(r){if(e.abs().lt(t.ONE))throw new Error(\"asec() only has non-complex values for |x| >= 1.\")}else if(e.abs().gt(t.ONE))throw new Error(\"acos() only has non-complex values for |x| <= 1.\");if(e.eq(-1))return n(t);var a=t.precision;t.config({precision:a+4}),r&&(e=t.ONE.div(e));var o=i(t.ONE.minus(e.times(e)).sqrt().div(e.plus(t.ONE)),t).times(2);return t.config({precision:a}),o.toDP(a-1)}},function(e,t,r){var n=r(77),i=r(449),a=r(78);e.exports=function(e,t,r){if(e.isNaN())return new t(NaN);if(!r&&e.isZero()||r&&!e.isFinite())return new t(0);var o=t.precision;if(!r&&!e.isFinite()||r&&e.isZero()){var s=n.pi(t.constructor({precision:o+2})).div(2).toDP(o-1);return s.constructor=t,s.s=e.s,s}t.config({precision:o+4}),r&&(e=t.ONE.div(e));var u=e.abs();if(u.lte(.875)){var c=a(e);return c.constructor=t,t.config({precision:o}),c.toDP(t.precision-1)}if(u.gte(1.143)){var s=n.pi(t.constructor({precision:o+4})).div(2),c=s.minus(a(t.ONE.div(u)));return c.s=e.s,c.constructor=t,t.config({precision:o}),c.toDP(t.precision-1)}return e=e.div(e.times(e).plus(1).sqrt()),t.config({precision:o}),i(e,t)}},function(e,t,r){var n=r(77).pi,i=r(450),a=r(451);e.exports=function o(e,t,r){if(e.isNaN())return new t(NaN);var s=t.precision,u=e.abs();if(r){if(u.lt(t.ONE))throw new Error(\"acsc() only has non-complex values for |x| >= 1.\");t.config({precision:s+2}),e=t.ONE.div(e),t.config({precision:s}),u=e.abs()}else if(u.gt(t.ONE))throw new Error(\"asin() only has non-complex values for |x| <= 1.\");if(u.gt(.8)){t.config({precision:s+4});var c=e.s,f=n(t.constructor({precision:s+4})).div(2);return e=f.minus(o(t.ONE.minus(e.times(e)).sqrt(),t)),e.s=c,e.constructor=t,t.config({precision:s}),e.toDP(s-1)}var l=u.gt(.58);l&&(t.config({precision:s+8}),e=e.div(new t(2).sqrt().times(t.ONE.minus(e.times(e)).sqrt().plus(t.ONE).sqrt())),t.config({precision:s}));var p=60>=s||e.dp()<=Math.log(s)&&e.lt(.05)?i(e,s):a(e,t);return l?p.times(2):p}},function(e,t){e.exports=function(e,t){var r=e.constructor;r.config({precision:t+Math.log(t)|4});for(var n=new r(1),i=e,a=NaN,o=e.times(e),s=e,u=new r(n),c=new r(n),f=new r(n),l=3;!i.equals(a);l+=2)s=s.times(o),u=u.times(f),c=c.times(f.plus(n)),a=i,f=new r(l),i=i.plus(s.times(u).div(f.times(c)));return r.config({precision:t}),i.toDP(t-1)}},function(e,t,r){var n=r(452),i=r(455);e.exports=function(e,t){var r=t.precision,a=-(r+4),o=r+8-e.e,s=25-e.e,u=Math.max(1.442695*Math.log(r+2)|5,5);t.config({precision:s});var c=0,f=new t(Math.asin(e.toNumber())+\"\");do{var l=n(f,t,1,!1),p=i(l);l.isZero()||(l.s=f.s);var m=l.minus(e).div(p);f=f.minus(m),s=Math.min(2*s,o),t.config({precision:s})}while(2*m.e>=a&&!m.isZero()&&++c<=u);if(c==u)throw new Error(\"asin() failed to converge to the requested accuracy.Try with a higher precision.\");return t.config({precision:r}),f.toDP(r-1)}},function(e,t,r){var n=r(453),i=r(454);e.exports=function(e,t,r,a){if(e.isNaN()||!e.isFinite())return new t(NaN);var o=t.precision,s=new t(e),u=s.isNegative();u&&(s.s=-s.s);var c=o+(0|Math.log(o))+3;if(t.config({precision:c}),s=n(s,t.constructor({precision:c}),r),s[0].constructor=t,s[1])return s=s[0],a&&s.isZero()&&(s=new t(1/0)),t.config({precision:o}),s;var f;if(s=s[0],r){f=i(s.div(3125),r),t.config({precision:Math.min(c,o+15)});for(var l=new t(5),p=new t(16),m=new t(20),h=0;5>h;++h){var g=f.times(f),v=g.times(f),d=v.times(g);f=p.times(d).minus(m.times(v)).plus(l.times(f))}u&&(f.s=-f.s)}else{var y,x;s.abs().lt(t.ONE)?(y=64,x=3):(y=256,x=4),f=i(s.div(y),r),t.config({precision:Math.min(c,o+8)});for(var w=new t(8);x>0;--x){var g=f.times(f),b=g.times(g);f=w.times(b.minus(g)).plus(t.ONE)}}return a&&(f=f.e<=-o?new t(1/0):t.ONE.div(f)),t.config({precision:o}),f.toDP(o-1)}},function(e,t,r){var n=r(77);e.exports=function(e,t,r){var i=n.pi(t.constructor({precision:t.precision+2})),a=n.tau(t);if(e.abs().lte(i.toDP(e.dp())))return[e,!1];if(e.dp()>0&&e.div(i.toDP(e.dp())).toNumber()%2==0)return[new t(1^r),!0];var o=e.mod(a);return e.dp()>0&&o.toDP(e.dp(),1).isZero()?[new t(1^r),!0]:(o.gt(i)&&(r?(o=o.minus(i),o.s=-o.s):o=a.minus(o)),o.constructor=e.constructor,[o,!1])}},function(e,t){e.exports=function(e,t){for(var r=e.constructor.ONE,n=e,i=NaN,a=e.times(e),o=t?n:n=r,s=r,u=!0,c=t;!n.equals(i);c+=2)o=o.times(a),s=s.times(c+1).times(c+2),i=n,u=!u,n=u?n.plus(o.div(s)):n.minus(o.div(s));return n}},function(e,t){e.exports=function(e){var t=e.constructor,r=t.precision;t.config({precision:r+2});var n=t.ONE.minus(e.times(e)).sqrt();return t.config({precision:r}),n.toDP(r-1)}},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(e){var t,r=u(e);return r.im<=0?(t=r.re,r.re=-r.im,r.im=t):(t=r.im,r.im=-r.re,r.re=t),r}var u=o.find(n(r(446)),[\"Complex\"]),c=o(\"acosh\",{number:function(r){return r>=1||t.predictable?Math.log(Math.sqrt(r*r-1)+r):-1>=r?new e.Complex(Math.log(Math.sqrt(r*r-1)-r),Math.PI):s(new e.Complex(r,0))},Complex:s,BigNumber:function(t){return a(t,e.BigNumber,!1,!1)},\"Array | Matrix\":function(e){return i(e,c)}});return c.toTex=\"\\\\cosh^{-1}\\\\left(${args[0]}\\\\right)\",c}var i=r(19),a=r(457);t.name=\"acosh\",t.factory=n},function(e,t){e.exports=function(e,t,r,n){if(e.isNaN())return new t(NaN);if(n&&e.isZero())return new t(1/0);if(!r)if(n){if(e.isNegative()||e.gt(t.ONE))throw new Error(\"asech() only has non-complex values for 0 <= x <= 1.\")}else if(e.lt(t.ONE))throw new Error(\"acosh() only has non-complex values for x >= 1.\");var i=t.precision;t.config({precision:i+4});var a=new t(e);a.constructor=t,n&&(a=t.ONE.div(a));var o=r?a.times(a).plus(t.ONE):a.times(a).minus(t.ONE),s=a.plus(o.sqrt()).ln();return t.config({precision:i}),new t(s.toPrecision(i))}},function(e,t,r){\"use strict\";function n(e,t,n,s){var u=s.find(n(r(459)),[\"Complex\"]),c=s(\"acot\",{number:function(e){return e?Math.atan(1/e):o},Complex:function(t){if(0==t.im)return new e.Complex(t.re?Math.atan(1/t.re):o,0);var r=t.re*t.re+t.im*t.im;return t=0!=r?new e.Complex(t.re=t.re/r,t.im=-t.im/r):new e.Complex(0!=t.re?t.re/0:0,0!=t.im?-(t.im/0):0),u(t)},BigNumber:function(t){return a(t,e.BigNumber,!0)},\"Array | Matrix\":function(e){return i(e,c)}});return c.toTex=\"\\\\cot^{-1}\\\\left(${args[0]}\\\\right)\",c}var i=r(19),a=r(448),o=1.5707963267948966;t.name=\"acot\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=o.find(n(r(352)),[\"Complex\"]),u=o(\"atan\",{number:function(e){return Math.atan(e)},Complex:function(t){if(0==t.re){if(1==t.im)return new e.Complex(0,1/0);if(-1==t.im)return new e.Complex(0,-(1/0))}var r=t.re,n=t.im,i=r*r+(1-n)*(1-n),a=new e.Complex((1-n*n-r*r)/i,-2*r/i),o=s(a);return new e.Complex(-.5*o.im,.5*o.re)},BigNumber:function(t){return a(t,e.BigNumber,!1)},\"Array | Matrix\":function(e){return i(e,u,!0)}});return u.toTex=\"\\\\tan^{-1}\\\\left(${args[0]}\\\\right)\",u}var i=r(19),a=r(448);t.name=\"atan\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,s){function u(t){if(0==t.re&&0==t.im)return new e.Complex(0,o);var r=t.re*t.re+t.im*t.im;return t=0!=r?new e.Complex(t.re/r,-t.im/r):new e.Complex(0!=t.re?t.re/0:0,0!=t.im?-(t.im/0):0),c(t)}var c=s.find(n(r(462)),[\"Complex\"]),f=s(\"acoth\",{number:function(r){return r>=1||-1>=r||t.predictable?isFinite(r)?(Math.log((r+1)/r)+Math.log(r/(r-1)))/2:0:0!==r?u(new e.Complex(r,0)):new e.Complex(0,o)},Complex:u,BigNumber:function(t){return a(t,e.BigNumber,!0)},\"Array | Matrix\":function(e){return i(e,f)}});return f.toTex=\"\\\\coth^{-1}\\\\left(${args[0]}\\\\right)\",f}var i=r(19),a=r(461),o=1.5707963267948966;t.name=\"acoth\",t.factory=n},function(e,t){e.exports=function(e,t,r){if(e.isNaN())return new t(NaN);var n=e.abs();if(n.eq(t.ONE))return new t(e.isNegative()?-(1/0):1/0);if(n.gt(t.ONE)){if(!r)throw new Error(\"atanh() only has non-complex values for |x| <= 1.\")}else if(r)throw new Error(\"acoth() has complex values for |x| < 1.\");if(e.isZero())return new t(0);var i=t.precision;t.config({precision:i+4});var a=new t(e);a.constructor=t,r&&(a=t.ONE.div(a));var o=t.ONE.plus(a).div(t.ONE.minus(a)).ln().div(2);return t.config({precision:i}),new t(o.toPrecision(i))}},function(e,t,r){\"use strict\";function n(e,t,r,n){function o(t){var r=t.re>1&&0==t.im,n=1-t.re,i=1+t.re,a=n*n+t.im*t.im;t=0!=a?new e.Complex((i*n-t.im*t.im)/a,(t.im*n+i*t.im)/a):new e.Complex(-1!=t.re?t.re/0:0,0!=t.im?t.im/0:0);var o=t.re;return t.re=Math.log(Math.sqrt(t.re*t.re+t.im*t.im))/2,t.im=Math.atan2(t.im,o)/2,r&&(t.im=-t.im),t}var s=n(\"atanh\",{number:function(r){return 1>=r&&r>=-1||t.predictable?Math.log((1+r)/(1-r))/2:o(new e.Complex(r,0))},Complex:o,BigNumber:function(t){return a(t,e.BigNumber,!1)},\"Array | Matrix\":function(e){return i(e,s,!0)}});return s.toTex=\"\\\\tanh^{-1}\\\\left(${args[0]}\\\\right)\",s}var i=r(19),a=r(461);t.name=\"atanh\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,s){function u(t){if(0==t.re&&0==t.im)return new e.Complex(o,1/0);var r=t.re*t.re+t.im*t.im;return t=0!=r?new e.Complex(t.re=t.re/r,t.im=-t.im/r):new e.Complex(0!=t.re?t.re/0:0,0!=t.im?-(t.im/0):0),c(t)}var c=s.find(n(r(464)),[\"Complex\"]),f=s(\"acsc\",{number:function(r){return-1>=r||r>=1||t.predictable?Math.asin(1/r):u(new e.Complex(r,0))},Complex:u,BigNumber:function(t){return a(t,e.BigNumber,!0)},\"Array | Matrix\":function(e){return i(e,f)}});return f.toTex=\"\\\\csc^{-1}\\\\left(${args[0]}\\\\right)\",f}var i=r(19),a=r(449),o=1.5707963267948966;t.name=\"acsc\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(t){var r=t.re,n=t.im,i=new e.Complex(n*n-r*r+1,-2*r*n),a=u(i),o=new e.Complex(a.re-n,a.im+r),s=c(o);return new e.Complex(s.im,-s.re)}var u=o.find(n(r(357)),[\"Complex\"]),c=o.find(n(r(352)),[\"Complex\"]),f=o(\"asin\",{number:function(r){return r>=-1&&1>=r||t.predictable?Math.asin(r):s(new e.Complex(r,0))},Complex:s,BigNumber:function(t){return a(t,e.BigNumber,!1)},\"Array | Matrix\":function(e){return i(e,f,!0)}});return f.toTex=\"\\\\sin^{-1}\\\\left(${args[0]}\\\\right)\",f}var i=r(19),a=r(449);t.name=\"asin\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=o.find(n(r(466)),[\"Complex\"]),u=o(\"acsch\",{number:function(e){return e=1/e,Math.log(e+Math.sqrt(e*e+1))},Complex:function(t){if(0==t.im)return t=0!=t.re?Math.log(t.re+Math.sqrt(t.re*t.re+1)):1/0,new e.Complex(t,0);var r=t.re*t.re+t.im*t.im;return t=0!=r?new e.Complex(t.re/r,-t.im/r):new e.Complex(0!=t.re?t.re/0:0,0!=t.im?-(t.im/0):0),s(t)},BigNumber:function(t){return a(t,e.BigNumber,!0,!0)},\"Array | Matrix\":function(e){return i(e,u)}});return u.toTex=\"\\\\mathrm{csch}^{-1}\\\\left(${args[0]}\\\\right)\",u}var i=r(19),a=r(457);t.name=\"acsch\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=o.find(n(r(464)),[\"Complex\"]),u=o(\"asinh\",{number:function(e){return Math.log(Math.sqrt(e*e+1)+e)},Complex:function(e){var t=e.im;e.im=-e.re,e.re=t;var r=s(e);return e.re=-e.im,e.im=t,t=r.re,r.re=-r.im,r.im=t,r},BigNumber:function(t){return a(t,e.BigNumber,!0,!1)},\"Array | Matrix\":function(e){return i(e,u,!0)}});return u.toTex=\"\\\\sinh^{-1}\\\\left(${args[0]}\\\\right)\",u}var i=r(19),a=r(457);t.name=\"asinh\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(t){if(0==t.re&&0==t.im)return new e.Complex(0,1/0);var r=t.re*t.re+t.im*t.im;return t=0!=r?new e.Complex(t.re=t.re/r,t.im=-t.im/r):new e.Complex(0!=t.re?t.re/0:0,0!=t.im?-(t.im/0):0),u(t)}var u=o.find(n(r(446)),[\"Complex\"]),c=o(\"asec\",{number:function(r){return-1>=r||r>=1||t.predictable?Math.acos(1/r):s(new e.Complex(r,0))},Complex:s,BigNumber:function(t){return a(t,e.BigNumber,!0)},\"Array | Matrix\":function(e){return i(e,c)}});return c.toTex=\"\\\\sec^{-1}\\\\left(${args[0]}\\\\right)\",c}var i=r(19),a=r(447);t.name=\"asec\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){function s(t){if(0==t.re&&0==t.im)return new e.Complex(1/0,0);var r=t.re*t.re+t.im*t.im;return t=0!=r?new e.Complex(t.re/r,-t.im/r):new e.Complex(0!=t.re?t.re/0:0,0!=t.im?-(t.im/0):0),u(t)}var u=o.find(n(r(456)),[\"Complex\"]),c=o(\"asech\",{number:function(r){if(1>=r&&r>=-1||t.predictable){r=1/r;var n=Math.sqrt(r*r-1);return r>0||t.predictable?Math.log(n+r):new e.Complex(Math.log(n-r),Math.PI)}return s(new e.Complex(r,0))},Complex:s,BigNumber:function(t){return a(t,e.BigNumber,!1,!0)},\"Array | Matrix\":function(e){return i(e,c)}});return c.toTex=\"\\\\mathrm{sech}^{-1}\\\\left(${args[0]}\\\\right)\",c}var i=r(19),a=r(457);t.name=\"asech\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){var o=n(r(51)),s=n(r(347)),u=n(r(60)),c=n(r(349)),f=n(r(298)),l=n(r(62)),p=n(r(56)),m=n(r(57)),h=a(\"atan2\",{\"number, number\":Math.atan2,\"BigNumber, BigNumber\":function(t,r){return i(t,r,e.BigNumber)},\"Matrix, Matrix\":function(e,t){var r;switch(e.storage()){case\"sparse\":switch(t.storage()){case\"sparse\":r=c(e,t,h,!1);break;default:r=s(t,e,h,!0)}break;default:switch(t.storage()){case\"sparse\":r=u(e,t,h,!1);break;default:r=p(e,t,h)}}return r},\"Array, Array\":function(e,t){return h(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return h(o(e),t)},\"Matrix, Array\":function(e,t){return h(e,o(t))},\"Matrix, number | BigNumber\":function(e,t){var r;switch(e.storage()){case\"sparse\":r=f(e,t,h,!1);break;default:r=m(e,t,h,!1)}return r},\"number | BigNumber, Matrix\":function(e,t){var r;switch(t.storage()){case\"sparse\":r=l(t,e,h,!0);break;default:r=m(t,e,h,!0)}return r},\"Array, number | BigNumber\":function(e,t){return m(o(e),t,h,!1).valueOf()},\"number | BigNumber, Array\":function(e,t){return m(o(t),e,h,!0).valueOf()}});return h.toTex=\"\\\\mathrm{atan2}\\\\left(${args}\\\\right)\",h}var i=r(470);t.name=\"atan2\",t.factory=n},function(e,t,r){var n=r(77),i=r(448);e.exports=function(e,t,r){var a=r.precision;if(t.isZero()){if(e.isZero())return new r(NaN);var o=n.pi(r.constructor({precision:a+2})).div(2).toDP(a-1);return o.constructor=r,o.s=e.s,o}r.config({precision:a+2});var s=i(e.div(t),r,!1);if(t.isNegative()){var u=n.pi(r);s=e.isNegative()?s.minus(u):s.plus(u)}return s.constructor=r,r.config({precision:a}),s.toDP(a-1)}},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=o.find(n(r(472)),[\"number\"]),u=o.find(n(r(474)),[\"number\"]),c=o(\"cos\",{number:Math.cos,Complex:function(t){return new e.Complex(Math.cos(t.re)*s(-t.im),Math.sin(t.re)*u(-t.im))},BigNumber:function(t){return a(t,e.BigNumber,0,!1)},Unit:function(t){if(!t.hasBase(e.Unit.BASE_UNITS.ANGLE))throw new TypeError(\"Unit in function cos is no angle\");return Math.cos(t.value)},\"Array | Matrix\":function(e){return i(e,c)}});return c.toTex=\"\\\\cos\\\\left(${args[0]}\\\\right)\",c}var i=r(19),a=r(452);t.name=\"cos\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var s=n(\"cosh\",{number:i,Complex:function(t){var r=Math.exp(t.re),n=Math.exp(-t.re);return new e.Complex(Math.cos(t.im)*(r+n)/2,Math.sin(t.im)*(r-n)/2)},BigNumber:function(t){return o(t,e.BigNumber,!1,!1)},Unit:function(t){if(!t.hasBase(e.Unit.BASE_UNITS.ANGLE))throw new TypeError(\"Unit in function cosh is no angle\");return i(t.value)},\"Array | Matrix\":function(e){return a(e,s)}});return s.toTex=\"\\\\cosh\\\\left(${args[0]}\\\\right)\",s}function i(e){return(Math.exp(e)+Math.exp(-e))/2}var a=r(19),o=r(473);t.name=\"cosh\",t.factory=n},function(e,t){e.exports=function(e,t,r,n){if(e.isNaN())return new t(NaN);if(!e.isFinite())return new t(n?0:r?e:1/0);var i=t.precision;t.config({precision:i+4});var a=new t(e);return a.constructor=t,a=a.exp(),a=r?a.minus(t.ONE.div(a)):a.plus(t.ONE.div(a)),a=n?new t(2).div(a):a.div(2),t.config({precision:i}),new t(a.toPrecision(i))}},function(e,t,r){\"use strict\";function n(e,t,r,n){var s=n(\"sinh\",{number:i,Complex:function(t){var r=Math.cos(t.im),n=Math.sin(t.im),i=Math.exp(t.re),a=Math.exp(-t.re);return new e.Complex(r*(i-a)/2,n*(i+a)/2)},BigNumber:function(t){return o(t,e.BigNumber,!0,!1)},Unit:function(t){if(!t.hasBase(e.Unit.BASE_UNITS.ANGLE))throw new TypeError(\"Unit in function sinh is no angle\");return i(t.value)},\"Array | Matrix\":function(e){return a(e,s,!0)}});return s.toTex=\"\\\\sinh\\\\left(${args[0]}\\\\right)\",s}function i(e){return Math.abs(e)<1?e+e*e*e/6+e*e*e*e*e/120:(Math.exp(e)-Math.exp(-e))/2}var a=r(19),o=r(473);t.name=\"sinh\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var o=n(\"cot\",{number:function(e){return 1/Math.tan(e)},Complex:function(t){var r=Math.exp(-4*t.im)-2*Math.exp(-2*t.im)*Math.cos(2*t.re)+1;return new e.Complex(2*Math.exp(-2*t.im)*Math.sin(2*t.re)/r,(Math.exp(-4*t.im)-1)/r)},BigNumber:function(t){return a(t,e.BigNumber,!0)},Unit:function(t){if(!t.hasBase(e.Unit.BASE_UNITS.ANGLE))throw new TypeError(\"Unit in function cot is no angle\");return 1/Math.tan(t.value)},\"Array | Matrix\":function(e){return i(e,o)}});return o.toTex=\"\\\\cot\\\\left(${args[0]}\\\\right)\",o}var i=r(19),a=r(476);t.name=\"cot\",t.factory=n},function(e,t,r){var n=r(77),i=r(452),a=r(455),o=r(453);e.exports=function(e,t,r){if(e.isNaN())return new t(NaN);var s=t.precision,u=n.pi(t.constructor({precision:s+2})),c=u.div(2).toDP(s-1);u=u.toDP(s-1);var f=o(e,t,1)[0];if(f.abs().eq(u))return new t(1/0);t.config({precision:s+4});var l=i(f,t,1,!1),p=a(l);l=l.toDP(s),p=p.toDP(s),f.eq(e)?f.gt(c)&&(p.s=-p.s):u.minus(f.abs()).gt(c)&&(p.s=-p.s);var m=r?p.div(l):l.div(p);return t.config({precision:s}),new t(m.toPrecision(s))}},function(e,t,r){\"use strict\";function n(e,t,r,n){var s=n(\"coth\",{number:i,Complex:function(t){var r=Math.exp(2*t.re),n=r*Math.cos(2*t.im),i=r*Math.sin(2*t.im),a=(n-1)*(n-1)+i*i;return new e.Complex(((n+1)*(n-1)+i*i)/a,-2*i/a)},BigNumber:function(t){return o(t,e.BigNumber,!0)},Unit:function(t){if(!t.hasBase(e.Unit.BASE_UNITS.ANGLE))throw new TypeError(\"Unit in function coth is no angle\");return i(t.value)},\"Array | Matrix\":function(e){return a(e,s)}});return s.toTex=\"\\\\coth\\\\left(${args[0]}\\\\right)\",s}function i(e){var t=Math.exp(2*e);return(t+1)/(t-1)}var a=r(19),o=r(478);t.name=\"coth\",t.factory=n},function(e,t){e.exports=function(e,t,r){if(e.isNaN())return new t(NaN);if(!e.isFinite())return new t(e.s);var n=t.precision;t.config({precision:n+4});var i=new t(e);i.constructor=t;var a=i.exp(),o=t.ONE.div(a),s=a.minus(o);return s=r?a.plus(o).div(s):s.div(a.plus(o)),t.config({precision:n}),s.toDP(n-1)}},function(e,t,r){\"use strict\";function n(e,t,r,n){var o=n(\"csc\",{number:function(e){return 1/Math.sin(e)},Complex:function(t){var r=.25*(Math.exp(-2*t.im)+Math.exp(2*t.im))-.5*Math.cos(2*t.re);return new e.Complex(.5*Math.sin(t.re)*(Math.exp(-t.im)+Math.exp(t.im))/r,.5*Math.cos(t.re)*(Math.exp(-t.im)-Math.exp(t.im))/r)},BigNumber:function(t){return a(t,e.BigNumber,1,!0)},Unit:function(t){if(!t.hasBase(e.Unit.BASE_UNITS.ANGLE))throw new TypeError(\"Unit in function csc is no angle\");return 1/Math.sin(t.value)},\"Array | Matrix\":function(e){return i(e,o)}});return o.toTex=\"\\\\csc\\\\left(${args[0]}\\\\right)\",o}var i=r(19),a=r(452);t.name=\"csc\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var s=n(\"csch\",{number:i,Complex:function(t){var r=Math.exp(t.re),n=Math.exp(-t.re),i=Math.cos(t.im)*(r-n),a=Math.sin(t.im)*(r+n),o=i*i+a*a;return new e.Complex(2*i/o,-2*a/o)},BigNumber:function(t){return o(t,e.BigNumber,!0,!0)},Unit:function(t){if(!t.hasBase(e.Unit.BASE_UNITS.ANGLE))throw new TypeError(\"Unit in function csch is no angle\");return i(t.value)},\"Array | Matrix\":function(e){return a(e,s)}});return s.toTex=\"\\\\mathrm{csch}\\\\left(${args[0]}\\\\right)\",s}function i(e){return 0==e?Number.POSITIVE_INFINITY:Math.abs(2/(Math.exp(e)-Math.exp(-e)))*s(e)}var a=r(19),o=r(473),s=r(6).sign;t.name=\"csch\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var o=n(\"sec\",{number:function(e){return 1/Math.cos(e)},Complex:function(t){var r=.25*(Math.exp(-2*t.im)+Math.exp(2*t.im))+.5*Math.cos(2*t.re);return new e.Complex(.5*Math.cos(t.re)*(Math.exp(-t.im)+Math.exp(t.im))/r,.5*Math.sin(t.re)*(Math.exp(t.im)-Math.exp(-t.im))/r)},BigNumber:function(t){return a(t,e.BigNumber,0,!0)},Unit:function(t){if(!t.hasBase(e.Unit.BASE_UNITS.ANGLE))throw new TypeError(\"Unit in function sec is no angle\");return 1/Math.cos(t.value)},\"Array | Matrix\":function(e){return i(e,o)}});return o.toTex=\"\\\\sec\\\\left(${args[0]}\\\\right)\",o}var i=r(19),a=r(452);t.name=\"sec\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var s=n(\"sech\",{number:i,Complex:function(t){var r=Math.exp(t.re),n=Math.exp(-t.re),i=Math.cos(t.im)*(r+n),a=Math.sin(t.im)*(r-n),o=i*i+a*a;return new e.Complex(2*i/o,-2*a/o)},BigNumber:function(t){return o(t,e.BigNumber,!1,!0)},Unit:function(t){if(!t.hasBase(e.Unit.BASE_UNITS.ANGLE))throw new TypeError(\"Unit in function sech is no angle\");return i(t.value)},\"Array | Matrix\":function(e){return a(e,s)}});return s.toTex=\"\\\\mathrm{sech}\\\\left(${args[0]}\\\\right)\",s}function i(e){return 2/(Math.exp(e)+Math.exp(-e))}var a=r(19),o=r(473);t.name=\"sech\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,o){var s=o.find(n(r(472)),[\"number\"]),u=o.find(n(r(474)),[\"number\"]),c=o(\"sin\",{number:Math.sin,Complex:function(t){return new e.Complex(Math.sin(t.re)*s(-t.im),Math.cos(t.re)*u(t.im))},BigNumber:function(t){return a(t,e.BigNumber,1,!1)},Unit:function(t){if(!t.hasBase(e.Unit.BASE_UNITS.ANGLE))throw new TypeError(\"Unit in function sin is no angle\");return Math.sin(t.value)},\"Array | Matrix\":function(e){return i(e,c,!0)}});return c.toTex=\"\\\\sin\\\\left(${args[0]}\\\\right)\",c}var i=r(19),a=r(452);t.name=\"sin\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var o=n(\"tan\",{number:Math.tan,Complex:function(t){var r=Math.exp(-4*t.im)+2*Math.exp(-2*t.im)*Math.cos(2*t.re)+1;return new e.Complex(2*Math.exp(-2*t.im)*Math.sin(2*t.re)/r,(1-Math.exp(-4*t.im))/r)},BigNumber:function(t){return a(t,e.BigNumber,!1)},Unit:function(t){if(!t.hasBase(e.Unit.BASE_UNITS.ANGLE))throw new TypeError(\"Unit in function tan is no angle\");return Math.tan(t.value)},\"Array | Matrix\":function(e){return i(e,o,!0)}});return o.toTex=\"\\\\tan\\\\left(${args[0]}\\\\right)\",o}var i=r(19),a=r(476);t.name=\"tan\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var s=n(\"tanh\",{number:i,Complex:function(t){var r=Math.exp(2*t.re),n=r*Math.cos(2*t.im),i=r*Math.sin(2*t.im),a=(n+1)*(n+1)+i*i;return new e.Complex(((n-1)*(n+1)+i*i)/a,2*i/a)},BigNumber:function(t){\nreturn o(t,e.BigNumber,!1)},Unit:function(t){if(!t.hasBase(e.Unit.BASE_UNITS.ANGLE))throw new TypeError(\"Unit in function tanh is no angle\");return i(t.value)},\"Array | Matrix\":function(e){return a(e,s,!0)}});return s.toTex=\"\\\\tanh\\\\left(${args[0]}\\\\right)\",s}function i(e){var t=Math.exp(2*e);return(t-1)/(t+1)}var a=r(19),o=r(478);t.name=\"tanh\",t.factory=n},function(e,t,r){e.exports=[r(487)]},function(e,t,r){\"use strict\";function n(e,t,n,i){var a=r(30),o=n(r(51)),s=n(r(56)),u=n(r(57)),c=i(\"to\",{\"Unit, Unit | string\":function(e,t){return e.to(t)},\"Matrix, Matrix\":function(e,t){return s(e,t,c)},\"Array, Array\":function(e,t){return c(o(e),o(t)).valueOf()},\"Array, Matrix\":function(e,t){return c(o(e),t)},\"Matrix, Array\":function(e,t){return c(e,o(t))},\"Matrix, any\":function(e,t){return u(e,t,c,!1)},\"any, Matrix\":function(e,t){return u(t,e,c,!0)},\"Array, any\":function(e,t){return u(o(e),t,c,!1).valueOf()},\"any, Array\":function(e,t){return u(o(t),e,c,!0).valueOf()}});return c.toTex=\"\\\\left(${args[0]}\"+a.operators.to+\"${args[1]}\\\\right)\",c}t.name=\"to\",t.factory=n},function(e,t,r){e.exports=[r(489),r(281),r(490),r(396),r(395),r(424),r(358),r(491),r(286),r(439),r(492),r(493),r(494),r(283)]},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"clone\",{any:i.clone});return a.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",a}var i=r(3);t.name=\"clone\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"format\",{any:i.format,\"any, Object | function | number\":i.format});return a.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",a}var i=r(23);t.name=\"format\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"isZero\",{number:function(e){return 0===e},BigNumber:function(e){return e.isZero()},Complex:function(e){return 0===e.re&&0===e.im},Fraction:function(e){return 1===e.d&&0===e.n},Unit:function(e){return 0===e.value},\"Array | Matrix\":function(e){return i(e,a)}});return a}var i=r(19);r(6);t.name=\"isZero\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"print\",{\"string, Object\":i,\"string, Object, number\":i});return a.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",a}function i(e,t,r){return e.replace(/\\$([\\w\\.]+)/g,function(e,n){for(var i=n.split(\".\"),s=t[i.shift()];i.length&&void 0!==s;){var u=i.shift();s=u?s[u]:s+\".\"}return void 0!==s?a(s)?s:o(s,r):e})}var a=r(23).isString,o=r(23).format;t.name=\"print\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,n,a){function o(e){if(\"asc\"===e)return f;if(\"desc\"===e)return l;throw new Error('String \"asc\" or \"desc\" expected')}function s(e){if(1!==i(e).length)throw new Error(\"One dimensional array expected\")}function u(e){if(1!==e.size().length)throw new Error(\"One dimensional matrix expected\")}var c=n(r(51)),f=n(r(432)),l=function(e,t){return-f(e,t)},p=a(\"sort\",{Array:function(e){return s(e),e.sort(f)},Matrix:function(e){return u(e),c(e.toArray().sort(f),e.storage())},\"Array, function\":function(e,t){return s(e),e.sort(t)},\"Matrix, function\":function(e,t){return u(e),c(e.toArray().sort(t),e.storage())},\"Array, string\":function(e,t){return s(e),e.sort(o(t))},\"Matrix, string\":function(e,t){return u(e),c(e.toArray().sort(o(t)),e.storage())}});return p.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",p}var i=r(40).size;t.name=\"sort\",t.factory=n},function(e,t,r){\"use strict\";function n(e,t,r,n){var a=n(\"_typeof\",{any:function(e){var t=i.type(e);if(\"Object\"===t){if(e.isBigNumber===!0)return\"BigNumber\";if(e.isComplex===!0)return\"Complex\";if(e.isFraction===!0)return\"Fraction\";if(e.isMatrix===!0)return\"Matrix\";if(e.isUnit===!0)return\"Unit\";if(e.isIndex===!0)return\"Index\";if(e.isRange===!0)return\"Range\";if(e.isChain===!0)return\"Chain\";if(e.isHelp===!0)return\"Help\"}return t}});return a.toTex=\"\\\\mathrm{${name}}\\\\left(${args}\\\\right)\",a}var i=r(41);t.name=\"typeof\",t.factory=n},function(e,t,r){e.exports=[r(496)]},function(e,t){\"use strict\";function r(e,t,r,n){return function(t,r){var n=e[r&&r.mathjs];return n&&\"function\"==typeof n.fromJSON?n.fromJSON(r):r}}t.name=\"reviver\",t.path=\"json\",t.factory=r},function(e,t,r){\"use strict\";var n=r(11),i=r(42),a=r(43);e.exports=[{name:\"ArgumentsError\",path:\"error\",factory:function(){return n}},{name:\"DimensionError\",path:\"error\",factory:function(){return i}},{name:\"IndexError\",path:\"error\",factory:function(){return a}}]}])});\n//# sourceMappingURL=math.map\n",
"title": "$:/plugins/mklauber/math.js/math.js",
"type": "application/javascript",
"module-type": "library"
}
}
}
A Rappan Athuk Pathfinder Character
$:/core/ui/ControlPanel/Palette
$:/core/ui/ControlPanel/Appearance
$:/core/ui/MoreSideBar/Tags
$:/core/ui/SideBar/Recent
$:/core/ui/ControlPanel/Toolbars/EditToolbar
{
"tiddlers": {
"$:/info/browser": {
"title": "$:/info/browser",
"text": "yes"
},
"$:/info/node": {
"title": "$:/info/node",
"text": "no"
},
"$:/info/url/full": {
"title": "$:/info/url/full",
"text": "file:///Users/junebug/Dropbox/Characters/Rappan%20Athuk/Winter%20Bear/WinterBear.html"
},
"$:/info/url/host": {
"title": "$:/info/url/host",
"text": ""
},
"$:/info/url/hostname": {
"title": "$:/info/url/hostname",
"text": ""
},
"$:/info/url/protocol": {
"title": "$:/info/url/protocol",
"text": "file:"
},
"$:/info/url/port": {
"title": "$:/info/url/port",
"text": ""
},
"$:/info/url/pathname": {
"title": "$:/info/url/pathname",
"text": "/Users/junebug/Dropbox/Characters/Rappan%20Athuk/Winter%20Bear/WinterBear.html"
},
"$:/info/url/search": {
"title": "$:/info/url/search",
"text": ""
},
"$:/info/url/origin": {
"title": "$:/info/url/origin",
"text": "file://"
},
"$:/info/browser/screen/width": {
"title": "$:/info/browser/screen/width",
"text": "1440"
},
"$:/info/browser/screen/height": {
"title": "$:/info/browser/screen/height",
"text": "900"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/snowwhite/base": {
"title": "$:/themes/tiddlywiki/snowwhite/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ntextarea.tc-edit-texteditor {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\ncanvas.tc-edit-bitmapeditor {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/vanilla/themetweaks": {
"title": "$:/themes/tiddlywiki/vanilla/themetweaks",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
"text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
},
"$:/themes/tiddlywiki/vanilla/base": {
"title": "$:/themes/tiddlywiki/vanilla/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n`\"`<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`\"`\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n`\"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>`\"`\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\n<<if-background-attachment \"\"\"\n\nbody.tc-body {\n background-color: transparent;\n}\n\n\"\"\">>\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tpadding: 14px;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n left: -50px;\n top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n right: -80px;\n bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\ninput[type=\"checkbox\"] {\n vertical-align: middle;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: 500;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n cursor: pointer;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n/* used for documentation \"fake\" buttons */\n.tc-btn-standard {\n\tline-height: 1.8;\n\tcolor: #667;\n\tbackground-color: #e0e0e0;\n\tborder: 1px solid #888;\n\tpadding: 2px 1px 2px 1px;\n\tmargin: 1px 4px 1px 4px;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour tag-foreground>>;\n\tvertical-align: text-bottom;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls .tc-drop-down {\n font-size: 1rem;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.2em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-tiddler-missing .tc-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button,\n.tc-tiddler-controls > span > span > button,\n.tc-tiddler-controls > span > span > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n height: 1.2em;\n width: 1.2em;\n margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tbackground-color: <<colour tiddler-editor-background>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name {\n\tdisplay: inline-block;\n\twidth: 15%;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n\twidth: 40%;\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n width: auto;\n margin-bottom: 0px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical {\n word-break: break-word;\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n display: block;\n width: 100%;\n text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n flex: 1 0;\n background: <<colour tiddler-editor-background>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n flex: 3 1;\n border-left: 0.5em solid <<colour muted-foreground>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tmax-width: 500px;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 28px;\n\tpadding: 14px 14px 14px 14px;\n\tborder: 2px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 14px;\n\tright: 14px;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: block;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground-colour: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info-chunk {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-plugin-info-chunk h1 {\n\tfont-size: 1em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk h2 {\n\tfont-size: 0.8em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk div {\n\tfont-size: 0.7em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info:hover > .tc-plugin-info-chunk > img, .tc-plugin-info:hover > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info > .tc-plugin-info-chunk > img, .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > img, .tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 1em 1em;\n}\n\n.tc-check-list {\n\tline-height: 2em;\n}\n\n.tc-check-list .tc-image-button {\n\theight: 1.5em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder-right: 1px solid <<colour table-header-background>>;\n\tborder-left: 1px solid <<colour table-header-background>>;\n}\n\n\n.tc-chooser-item {\n\tborder-bottom: 1px solid <<colour table-header-background>>;\n\tborder-top: 1px solid <<colour table-header-background>>;\n\tpadding: 2px 4px 2px 14px;\n}\n\n.tc-drop-down .tc-chooser-item {\n\tpadding: 2px;\n}\n\n.tc-chosen,\n.tc-chooser-item:hover {\n\tbackground-color: <<colour table-header-background>>;\n\tborder-color: <<colour table-footer-background>>;\n}\n\n.tc-chosen .tc-tiddlylink {\n\tcursor:default;\n}\n\n.tc-chooser-item .tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tbackground-color: transparent;\n}\n\n.tc-chooser-item:hover .tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-chosen .tc-tiddlylink,\n.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-chosen > .tc-tiddlylink:before {\n\tmargin-left: -10px;\n\tposition: relative;\n\tcontent: \"» \";\n}\n\n.tc-chooser-item svg,\n.tc-chooser-item img{\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: middle;\n}\n\n.tc-language-chooser .tc-image-button img {\n\twidth: 2em;\n\tvertical-align: -0.15em;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Diffs\n*/\n\n.tc-diff-equal {\n\tbackground-color: <<colour diff-equal-background>>;\n\tcolor: <<colour diff-equal-foreground>>;\n}\n\n.tc-diff-insert {\n\tbackground-color: <<colour diff-insert-background>>;\n\tcolor: <<colour diff-insert-foreground>>;\n}\n\n.tc-diff-delete {\n\tbackground-color: <<colour diff-delete-background>>;\n\tcolor: <<colour diff-delete-foreground>>;\n}\n\n.tc-diff-invisible {\n\tbackground-color: <<colour diff-invisible-background>>;\n\tcolor: <<colour diff-invisible-foreground>>;\n}\n\n.tc-diff-tiddlers th {\n\ttext-align: right;\n\tbackground: <<colour background>>;\n\tfont-weight: normal;\n\tfont-style: italic;\n}\n\n.tc-diff-tiddlers pre {\n margin: 0;\n padding: 0;\n border: none;\n background: none;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n\n/*\n** Tree macro\n*/\n\n.tc-tree div {\n \tpadding-left: 14px;\n}\n\n.tc-tree ol {\n \tlist-style-type: none;\n \tpadding-left: 0;\n \tmargin-top: 0;\n}\n\n.tc-tree ol ol {\n \tpadding-left: 1em; \n}\n\n.tc-tree button { \n \tcolor: #acacac;\n}\n\n.tc-tree svg {\n \tfill: #acacac;\n}\n\n.tc-tree span svg {\n \twidth: 1em;\n \theight: 1em;\n \tvertical-align: baseline;\n}\n\n.tc-tree li span {\n \tcolor: lightgray;\n}\n"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize",
"text": "15px"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight",
"text": "22px"
},
"$:/themes/tiddlywiki/vanilla/metrics/fontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize",
"text": "14px"
},
"$:/themes/tiddlywiki/vanilla/metrics/lineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight",
"text": "20px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyleft": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storytop": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storytop",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyright": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyright",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storywidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth",
"text": "686px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint",
"text": "960px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth",
"text": "350px"
},
"$:/themes/tiddlywiki/vanilla/options/stickytitles": {
"title": "$:/themes/tiddlywiki/vanilla/options/stickytitles",
"text": "no"
},
"$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
"title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
"text": "fixed-fluid"
},
"$:/themes/tiddlywiki/vanilla/options/codewrapping": {
"title": "$:/themes/tiddlywiki/vanilla/options/codewrapping",
"text": "pre-wrap"
},
"$:/themes/tiddlywiki/vanilla/reset": {
"title": "$:/themes/tiddlywiki/vanilla/reset",
"type": "text/plain",
"text": "/*! normalize.css v3.0.0 | MIT License | git.io/normalize */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n * user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined in IE 8/9.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9.\n * Hide the `template` element in IE, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background: transparent;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9, Safari 5, and Chrome.\n */\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.\n */\n\nb,\nstrong {\n font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari 5 and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari 5, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow displayed oddly in IE 9.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari 5.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8+, and Opera\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n * (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box; /* 2 */\n box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n"
},
"$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
"text": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\""
},
"$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
"text": "\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
"text": "fixed"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
"text": "auto"
},
"$:/themes/tiddlywiki/vanilla/sticky": {
"title": "$:/themes/tiddlywiki/vanilla/sticky",
"text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n``\n</$reveal>\n"
}
}
}
(function(){
"use strict";
exports.name = "addSorcSpell";
exports.params = [
{ name: "aSpellLevel", default: "1" },
{ name: "aImgCo", default: "1" }
];
exports.run = function(aSpellLevel,aImgCo) {
var chartiddler = this.wiki.getTiddler("preparedSpellData");
var maxASpellLevel = chartiddler.fields["sorcmax"+aSpellLevel];
var newImgCo = Math.min( Number( aImgCo )+1, Number(maxASpellLevel) );
var outputString ='<$action-setfield $field="sorc'+aSpellLevel+'" $value="'+newImgCo+'" />';
return outputString
};
})();
(function(){
"use strict";
exports.name = "addSpontaneousSpell";
exports.params = [
{ name: "clssName", default: "Bard" },
{ name: "aSpellLevel", default: "1" },
{ name: "aImgCo", default: "1" }
];
exports.run = function(clssName,aSpellLevel,aImgCo) {
var spelldatatiddler = this.wiki.getTiddler("SpellData");
var spellData = JSON.parse(spelldatatiddler.fields.text);
var maxASpellLevel = spellData[clssName+"SPD"+aSpellLevel];
var fieldName = clssName.toLowerCase();
var newImgCo = Math.min( Number( aImgCo )+1, Number(maxASpellLevel) );
var outputString ='<$action-setfield $field="'+fieldName+aSpellLevel+'" $value="'+newImgCo+'" />';
return outputString
};
})();
(function(){
"use strict";
exports.name = "baseAttackBonus";
exports.params = [ ];
exports.run = function() {
var chartiddler = this.wiki.getTiddler("CharacterData");
var charData = JSON.parse(chartiddler.fields.text);
var clssLevels = JSON.parse(charData.Levels);
var clssDataTid = this.wiki.getTiddler("classData");
var clssData = JSON.parse(clssDataTid.fields.text);
var baseAttackBonus = 0;
var index;
for( index in clssLevels ) {
var thisClss = clssLevels[index];
baseAttackBonus += charData[thisClss]*clssData[thisClss].BAB ;
}
baseAttackBonus = Math.floor( baseAttackBonus );
return baseAttackBonus
};
})();
(function(){
"use strict";
exports.name = "baseSaves";
exports.params = [
{ name: "saveName", default: "Fort" }
];
exports.run = function(saveName) {
var chartiddler = this.wiki.getTiddler("CharacterData");
var charData = JSON.parse(chartiddler.fields.text);
var clssLevels = JSON.parse(charData.Levels);
var clssDataTid = this.wiki.getTiddler("classData");
var clssData = JSON.parse(clssDataTid.fields.text);
var startValue = 0;
var saveProgress = clssData[clssLevels[0]][saveName];
if( saveProgress == 0.5 ) { startValue += 2; }
var baseSaveBonus = 0;
var index;
for( index in clssLevels ) {
baseSaveBonus += charData[clssLevels[index]]*clssData[clssLevels[index]][saveName];
}
baseSaveBonus = Math.floor( startValue + baseSaveBonus );
return baseSaveBonus
};
})();
(function(){
"use strict";
exports.name = "castDruidSpell";
exports.params = [
{ name: "spellName" }
];
exports.run = function(spellName) {
spellName = spellName || this.getVariable("currentTiddler");
var safeSpellName = spellName.replace(" Spell","");
var spelltiddler = this.wiki.getTiddler(spellName);
spelltiddler.fields.cast = 1;
return spelltiddler.fields.cast
};
})();
(function(){
"use strict";
exports.name = "castSorcSpell";
exports.params = [
{ name: "cSpellLevel", default: "1" },
{ name: "cImgCo", default: "1" }
];
exports.run = function(cSpellLevel,cImgCo) {
cImgCo = Math.max( 0, Number( cImgCo ) );
var outputString ='<$action-setfield $field="sorc'+cSpellLevel+'" $value="'+(cImgCo-1)+'" />';
return outputString
};
})();
(function(){
"use strict";
exports.name = "castSpontaneousSpell";
exports.params = [
{ name: "clssName", default: "Sorcerer" },
{ name: "cSpellLevel", default: "1" },
{ name: "cImgCo", default: "1" }
];
exports.run = function(clssName,cSpellLevel,cImgCo) {
var fieldName = clssName.toLowerCase();
cImgCo = Math.max( 0, Number( cImgCo ) );
var outputString ='<$action-setfield $field="'+fieldName+cSpellLevel+'" $value="'+(cImgCo-1)+'" />';
return outputString
};
})();
(function(){
"use strict";
exports.name = "charDataLookup";
exports.params = [
{ name: "value", default: "XP" }
];
exports.run = function(value) {
var chartiddler = this.wiki.getTiddler("CharacterData");
var charData = JSON.parse(chartiddler.fields.text);
var charDataReturn = charData[value];
return charDataReturn
};
})();
(function(){
"use strict";
exports.name = "classDataLookup";
exports.params = [
{ name: "valueList", default: "Druid" }
];
exports.run = function(valueList) {
var clsstiddler = this.wiki.getTiddler("classData");
var clssData = JSON.parse(clsstiddler.fields.text);
var thisKey = 0;
var thisValue = clssData;
var dataKeys = valueList.split(",");
for( var key in dataKeys ) {
thisKey = dataKeys[key];
thisValue = thisValue[thisKey];
}
var charDataReturn = thisValue;
return charDataReturn
};
})();
(function(){
"use strict";
exports.name = "druidSpellCards";
exports.params = [
{ name: "columnSize", default: "3" }
];
exports.run = function(columnSize) {
var spellIndex = 0;
var rowCount = 0;
var colCount = 0;
var thisLevelCount = 0;
var thisRows = 0;
var outputString = '<table>';
var charTiddler = this.wiki.getTiddler("preparedSpellData");
var spellArray = JSON.parse(charTiddler.fields.text);
var maxSpellLevel = spellArray.length;
var outputString = '<table>';
for( spellIndex = 0; spellIndex < maxSpellLevel; spellIndex++ ) {
var allyNumber = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"];
if( spellIndex !== 0 ) {
outputString += "<tr>[[Summon Nature's Ally " + allyNumber[spellIndex] + " Spell]]</tr>";
}
thisLevelCount = spellArray[spellIndex].length;
thisRows = Math.floor( thisLevelCount/columnSize );
for( rowCount = 0; rowCount < thisRows; rowCount++ ) {
outputString += '<tr>';
for( colCount = 0; colCount < columnSize; colCount++ ) {
var thisCardName = spellArray[spellIndex][ (rowCount*columnSize + colCount) ];
var spellTiddler = this.wiki.getTiddler(thisCardName+" Spell");
var thisSpellInfo = spellTiddler.fields.text;
var thisSpellTags = spellTiddler.fields.tags;
var cardClassValue = "D";
if( !thisSpellTags.includes("Domain" ) ) { cardClassValue = spellIndex; }
var castValue = "";
if( spellTiddler.fields.cast==1 ) { castValue = "cast"; }
thisSpellInfo = thisSpellInfo.slice( ( thisSpellInfo.indexOf("\"\"\"")+17 ), thisSpellInfo.lastIndexOf("\"\"\"") );
outputString += '<td><table class="'+castValue+'spellcard'+cardClassValue+'"><tr style="font-size: 30px\;" height: 40px\;><td>[['+thisCardName+'|'+thisCardName+' Spell]]</td></tr><tr style="font-size: 24px\;" height: 30px\;><td>SL '+spellIndex+'</td></tr><tr rowspan=6><td height=290px\;>\"\"\"'+thisSpellInfo+'\"\"\"</td></tr></table>';
if( spellIndex !== 0 ) { outputString += '<table><tr><td><$button><$action-setfield $tiddler="'+thisCardName+' Spell" cast=1 /><$action-setfield $tiddler="Druid Spell Cards" button="cast'+thisCardName+'" />Cast Spell</$button> <$button><$action-setfield $tiddler="'+thisCardName+' Spell" cast=0 /><$action-setfield $tiddler="Druid Spell Cards" button="load'+thisCardName+'" />Reload Spell</$button></td></tr></table>';
}
outputString += '</td>';
}
outputString += '</tr>';
}
outputString += '<tr>';
var remainingCards = thisLevelCount - thisRows*columnSize;
for( colCount = 0; colCount < remainingCards; colCount++ ) {
thisCardName = spellArray[spellIndex][ (thisRows*columnSize + colCount) ];
var spellTiddler = this.wiki.getTiddler(thisCardName+" Spell");
var thisSpellInfo = spellTiddler.fields.text;
var thisSpellTags = spellTiddler.fields.tags;
var cardClassValue = "D";
if( !thisSpellTags.includes("Domain" ) ) { cardClassValue = spellIndex; }
var castValue = "";
if( spellTiddler.fields.cast==1 ) { castValue = "cast"; }
thisSpellInfo = thisSpellInfo.slice( ( thisSpellInfo.indexOf("\"\"\"")+17 ), thisSpellInfo.lastIndexOf("\"\"\"") );
outputString += '<td><table class="'+castValue+'spellcard'+cardClassValue+'"><tr style="font-size: 30px\;" height: 40px\;><td>[['+thisCardName+'|'+thisCardName+' Spell]]</td></tr><tr style="font-size: 24px\;" height: 30px\;><td>SL '+spellIndex+'</td></tr><tr rowspan=6><td height=290px\;>\"\"\"'+thisSpellInfo+'\"\"\"</td></tr></table>';
if( spellIndex !== 0 ) { outputString += '<table><tr><td><$button><$action-setfield $tiddler="'+thisCardName+' Spell" cast=1 /><$action-setfield $tiddler="Druid Spell Cards" button="cast'+thisCardName+'" />Cast Spell</$button> <$button><$action-setfield $tiddler="'+thisCardName+' Spell" cast=0 /><$action-setfield $tiddler="Druid Spell Cards" button="load'+thisCardName+'" />Reload Spell</$button></td></tr></table>';
}
outputString += '</td>';
}
outputString += '</tr>';
}
outputString += '</table>';
return outputString
};
})();
(function(){
"use strict";
exports.name = "druidSpellCardTest";
exports.params = [
{ name: "spellObjectText", default: "{}" },
{ name: "columnSize", default: "3" }
];
exports.run = function(spellObjectText) {
var spellObjectD0 = "0";
var chartiddler = this.wiki.getTiddler("Test Tiddler");
spellObjectD0 = chartiddler.fields.druidlist0;
spellObjectD0.toString().replace( /\]\]\w\[\[/, "\", \"");
spellObjectD0.toString().replace( /\[\[/, "\"");
spellObjectD0.toString().replace( /\]\]/, "\"");
return spellObjectD0
};
})();
(function(){
"use strict";
exports.name = "increment";
exports.params = [
{ name: "value", default: 0 },
{ name: "step", default: 1 }
];
exports.run = function(value,step) {
var newValue = Number(value) + Number(step);
return newValue
};
})();
(function(){
"use strict";
exports.name = "knutBaseAttackBonus";
exports.params = [ ];
exports.run = function() {
var chartiddler = this.wiki.getTiddler("Knut CharacterData");
var charData = JSON.parse(chartiddler.fields.text);
var knutHD = charData.HD
var baseAttackBonus = Math.floor( knutHD*3/4 );
return baseAttackBonus
};
})();
(function(){
"use strict";
exports.name = "loadDruidSpellButton";
exports.params = [
{ name: "LDSpellName" }
];
exports.run = function(LDSpellName) {
LDSpellName = LDSpellName || this.getVariable("currentTiddler");
var safeLDSpellName = LDSpellName.replace(" Spell","");
var spelltiddler = this.wiki.getTiddler(LDSpellName);
var spellData = spelltiddler.fields;
var outputString ='<$button><$action-setfield $tiddler=\{\{!!title\}\} prepared="'+(Number(spellData.prepared)+1)+'" /><$action-setfield $tiddler="preparedSpellData" text=<<loadSpell>> />Load Spell</$button>';
return outputString
};
})();
(function(){
"use strict";
exports.name = "loadSpell";
exports.params = [
{ name: "spellName" }
];
exports.run = function(spellName) {
spellName = spellName || this.getVariable("currentTiddler");
var safeSpellName = spellName.replace(" Spell","");
var chartiddler = this.wiki.getTiddler("preparedSpellData");
var spellArray = JSON.parse(chartiddler.fields.text);
var spelltiddler = this.wiki.getTiddler(spellName);
var spellLevel = spelltiddler.fields.spelllevel;
var spellTags = spelltiddler.fields.tags;
var spellAdjust = Math.ceil( spellLevel/10 );
var maxLength = chartiddler.fields["druidmax"+spellLevel];
var reduceLength = Math.max( 0 , 1 + spellArray[spellLevel].length - maxLength - spellAdjust );
if( spellTags.includes("Domain" ) ) {
if( spellArray[spellLevel].includes(safeSpellName) ) {
if( reduceLength == 1 ) { spellArray[spellLevel].pop(); }
spellArray[spellLevel].splice(spellAdjust, 0, safeSpellName);
} else {
spellArray[spellLevel][0] = safeSpellName;
}
} else {
if( reduceLength == 1 ) { spellArray[spellLevel].pop(); }
spellArray[spellLevel].splice(spellAdjust, 0, safeSpellName);
}
return JSON.stringify(spellArray)
};
})();
(function(){
"use strict";
exports.name = "loadSpellCheckbox";
exports.params = [
{ name: "clssName", default: "Druid" },
{ name: "LDSpellName" }
];
exports.run = function(clssName,LDSpellName) {
LDSpellName = LDSpellName || this.getVariable("currentTiddler");
if( !LDSpellName.endsWith(" Spell") ) {
LDSpellName += " Spell";
}
var safeLDSpellName = LDSpellName.replace(" Spell","");
var spelltiddler = this.wiki.getTiddler(LDSpellName);
var thisSpellData = spelltiddler.fields;
var spellLevel = thisSpellData.spelllevel;
var isAlreadyPrepared = thisSpellData.prepared;
var charTiddler = this.wiki.getTiddler("SpellData");
var characterSpellData = JSON.parse(charTiddler.fields.text);
var spellArray = JSON.parse(characterSpellData[clssName+" Prepared "+spellLevel]);
var maxLength = characterSpellData[clssName+"SPD"+spellLevel];
var bagName = characterSpellData[clssName+"Bag"];
var spellSlots = thisSpellData.slots;
var spellTags = thisSpellData.tags;
if( isAlreadyPrepared == 1 ) {
if( spellTags.includes( bagName ) ) {
spellArray.unshift(LDSpellName);
} else {
spellArray.push(LDSpellName);
}
}
var newList=JSON.stringify(spellArray)
var outputString ='<$action-setfield $tiddler="SpellData" $index="'+clssName+' Prepared '+spellLevel+'" $value="""'+newList+'""" />';
return outputString
};
})();
(function(){
"use strict";
exports.name = "preparedSpellCards";
exports.params = [
{ name: "clssName", default: "Druid" },
{ name: "columnSize", default: "3" }
];
exports.run = function(clssName,columnSize) {
var spellIndex = 0;
var rowCount = 0;
var colCount = 0;
var thisLevelCount = 0;
var thisRows = 0;
var outputString = '<table>';
var spellDataTiddler = this.wiki.getTiddler("SpellData");
var spellData = JSON.parse(spellDataTiddler.fields.text);
var thisClssLevel = spellData[clssName];
var maxSpellLevel = spellData[clssName+"Max"];
var castingStat = spellData[clssName+"Stat"];
var bagName = spellData[clssName+"Bag"];
var clsstiddler = this.wiki.getTiddler("classData");
var clssData = JSON.parse(clsstiddler.fields.text);
var chartiddler = this.wiki.getTiddler("CharacterData");
var charData = JSON.parse(chartiddler.fields.text);
for( spellIndex = 0; spellIndex < maxSpellLevel+1; spellIndex++ ) {
var baseArray = JSON.parse( spellData[clssName+" Prepared "+spellIndex] );
var thisArray = [];
var spIndex = 0;
for( spIndex in baseArray ) {
var thisCardName = baseArray[spIndex];
var spellTiddler = this.wiki.getTiddler(thisCardName);
var thisSpellSlots = spellTiddler.fields.slots;
var spCount;
for( spCount = 0; spCount < thisSpellSlots; spCount++ ) {
thisArray.push(thisCardName);
}
}
var allyNumber = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"];
var spontCastString = "";
var thisSPD = clssData[clssName].SPD[thisClssLevel][spellIndex];
var SPDModifier = 0;
var extraSPDString = "";
if( spellIndex > 0 ) {
SPDModifier = Math.max( 0, Math.floor( (charData[castingStat]-2*spellIndex - 2)/8 ) );
if( bagName !== "None" ) { extraSPDString = "+1"; }
spontCastString = '<tr><td colspan="3">[[Summon Nature\'s Ally ' + allyNumber[spellIndex] + ' Spell]]</td></tr>';
}
var SPDFinalValue = thisSPD+SPDModifier;
thisLevelCount = thisArray.length;
thisRows = Math.floor( thisLevelCount/columnSize );
var thisCardCount = 0;
for( rowCount = 0; rowCount < thisRows; rowCount++ ) {
if( rowCount == 0 ) {
var spellIndexString;
switch( spellIndex ) {
case 1:
spellIndexString = "1st";
break;
case 2:
spellIndexString = "2nd";
break;
case 3:
spellIndexString = "3rd";
break;
default:
spellIndexString = spellIndex+"th";
}
outputString += '<tr><td colspan="3" style="font-size:150%"\;>'+spellIndexString+' Spells</td></tr><tr><td colspan="3" >Spells per Day: '+SPDFinalValue+extraSPDString+'</td></tr>';
outputString += spontCastString;
}
outputString += '<tr>';
for( colCount = 0; colCount < columnSize; colCount++ ) {
var thisCardName = thisArray[ (rowCount*columnSize + colCount) ];
var safeCardName = thisCardName.replace(" Spell","");
var spellTiddler = this.wiki.getTiddler(thisCardName);
var thisSpellInfo = spellTiddler.fields.text;
var thisSpellTags = spellTiddler.fields.tags;
var cardClassValue = "D";
if( !thisSpellTags.includes( bagName ) || colCount!==0 || rowCount!==0 || spellIndex==0 ) { cardClassValue = spellIndex; }
var castValue = "cast";
var castString = "cast";
if( rowCount > 0 || colCount > 0 ) {
if( thisArray[ (rowCount*columnSize + colCount) ] == thisArray[ (rowCount*columnSize + colCount - 1) ] ) {
thisCardCount++;
castValue += thisCardCount;
} else {
thisCardCount = 0;
}
}
if( spellTiddler.fields[castValue]!=="1" ) { castString = ""; }
thisSpellInfo = thisSpellInfo.slice( ( thisSpellInfo.indexOf("\"\"\"")+17 ), thisSpellInfo.lastIndexOf("\"\"\"") );
outputString += '<td><table class="'+castString+'spellcard'+cardClassValue+'"><tr style="font-size: 30px\;" height: 40px\;><td>[['+thisCardName+'|'+thisCardName+']]</td></tr><tr style="font-size: 24px\;" height: 30px\;><td>SL '+spellIndex+'</td></tr><tr rowspan=6><td height=290px\;>\"\"\"'+thisSpellInfo+'\"\"\"</td></tr></table>';
if( ( spellIndex != 0 || clssName == "SLA" ) && thisSpellSlots != "at Will" ) { outputString += '<table><tr><td><$button><$action-setfield $tiddler="'+thisCardName+'" '+castValue+'=1 /><$action-setfield $tiddler="'+clssName+' Spell Cards" button="cast'+safeCardName+'" />Cast Spell</$button> <$button><$action-setfield $tiddler="'+thisCardName+'" '+castValue+'=0 /><$action-setfield $tiddler="'+clssName+' Spell Cards" button="load'+safeCardName+'" />Reload Spell</$button></td></tr></table>';
}
outputString += '</td>';
}
outputString += '</tr>';
}
outputString += '<tr>';
var remainingCards = thisLevelCount - thisRows*columnSize;
for( colCount = 0; colCount < remainingCards; colCount++ ) {
thisCardName = thisArray[ (thisRows*columnSize + colCount) ];
var safeCardName = thisCardName.replace(" Spell","");
var spellTiddler = this.wiki.getTiddler(thisCardName);
var thisSpellInfo = spellTiddler.fields.text;
var thisSpellTags = spellTiddler.fields.tags;
var cardClassValue = "D";
if( !thisSpellTags.includes( bagName ) || spellIndex==0 ) { cardClassValue = spellIndex; }
var castValue = "cast";
var castString = "cast";
if( thisArray[ (thisRows*columnSize + colCount) ] == thisArray[ (thisRows*columnSize + colCount - 1) ] ) {
thisCardCount++;
castValue += thisCardCount;
} else {
thisCardCount = 0;
}
if( spellTiddler.fields[castValue]!=="1" ) { castString = ""; }
thisSpellInfo = thisSpellInfo.slice( ( thisSpellInfo.indexOf("\"\"\"")+17 ), thisSpellInfo.lastIndexOf("\"\"\"") );
outputString += '<td><table class="'+castString+'spellcard'+cardClassValue+'"><tr style="font-size: 30px\;" height: 40px\;><td>[['+thisCardName+'|'+thisCardName+']]</td></tr><tr style="font-size: 24px\;" height: 30px\;><td>SL '+spellIndex+'</td></tr><tr rowspan=6><td height=290px\;>\"\"\"'+thisSpellInfo+'\"\"\"</td></tr></table>';
if( ( spellIndex != 0 || clssName == "SLA" ) && thisSpellSlots != "at Will" ) { outputString += '<table><tr><td><$button><$action-setfield $tiddler="'+thisCardName+'" '+castValue+'=1 /><$action-setfield $tiddler="'+clssName+' Spell Cards" button="cast'+safeCardName+'" />Cast Spell</$button> <$button><$action-setfield $tiddler="'+thisCardName+'" '+castValue+'=0 /><$action-setfield $tiddler="'+clssName+' Spell Cards" button="load'+safeCardName+'" />Reload Spell</$button></td></tr></table>';
}
outputString += '</td>';
}
outputString += '</tr>';
}
outputString += '</table>';
return outputString
};
})();
(function(){
"use strict";
exports.name = "resetSorcSpell";
exports.params = [
{ name: "rSpellLevel", default: "1" }
];
exports.run = function(rSpellLevel) {
var chartiddler = this.wiki.getTiddler("preparedSpellData");
var maxASpellLevel = chartiddler.fields["sorcmax"+rSpellLevel];
var outputString ='<$action-setfield $field="sorc'+rSpellLevel+'" $value="'+maxASpellLevel+'" />';
return outputString
};
})();
(function(){
"use strict";
exports.name = "resetSpontaneousSpell";
exports.params = [
{ name: "clssName", default: "Bard" },
{ name: "rSpellLevel", default: "1" }
];
exports.run = function(clssName,rSpellLevel) {
var spelldatatiddler = this.wiki.getTiddler("SpellData");
var spellData = JSON.parse(spelldatatiddler.fields.text);
var maxASpellLevel = spellData[clssName+"SPD"+rSpellLevel];
var fieldName = clssName.toLowerCase();
var outputString ='<$action-setfield $field="'+fieldName+rSpellLevel+'" $value="'+maxASpellLevel+'" />';
return outputString
};
})();
(function(){
"use strict";
exports.name = "skillTableLine";
exports.params = [
{ name: "skillName" }
];
exports.run = function(skillName) {
var acpmod = 0;
var basetiddler = this.wiki.getTiddler(skillName);
var ability = basetiddler.fields.ability;
var untrained = basetiddler.fields.untrained || 0;
var classskill = basetiddler.fields.classskill || 0;
var rank = basetiddler.fields.rank || 0;
var miscmod = basetiddler.fields.miscmod || 0;
var skillnotes = basetiddler.fields.skillnotes || "";
var skillfocus = basetiddler.fields.focus || "";
rank = Number( rank );
miscmod = Number( miscmod );
var chartiddler = this.wiki.getTiddler("CharacterData");
var abilityscore = JSON.parse(chartiddler.fields.text)[ability];
var lineString = "<tr><td><$checkbox tiddler=\"ClassSkillsData\" index=\""+skillName+"\" checked=\"1\" unchecked=\"0\" default=\"0\"></$checkbox>";
if( untrained == 1 ) {
lineString += "*";
}
lineString += "</td><td>[["+skillName;
if( skillfocus != "" ) {
lineString += " "+skillfocus+"|"+skillName;
}
lineString += "]]</td><td>"+ability+"</td><td></td><td>";
var abilitymod = Math.floor( ( abilityscore - 10 )/2 );
var classmod = 0;
if( rank > 0 && classskill == 1 ) {
classmod = 3;
}
var finalskill = rank + abilitymod + classmod + miscmod + acpmod;
if( finalskill >= 0 ) {
lineString += " +";
}
lineString += finalskill+" </td><td>";
if( rank > 0 ) {
lineString += " "+rank+" ";
}
lineString += "</td><td>";
if( abilitymod >= 0 ) {
lineString += " +";
}
lineString += abilitymod+" </td><td> +"+classmod+" </td><td>";
if( miscmod >= 0 ) {
lineString += " +";
}
lineString += miscmod+" </td><td>";
if( acpmod >= 0 ) {
lineString += " +";
}
lineString += acpmod+" </td><td>"+skillnotes+" </td></tr>";
return lineString;
};
})();
(function(){
"use strict";
exports.name = "sorcSpellCard";
exports.params = [
{ name: "cardNo", default: "1" },
{ name: "imgCo", default: "1" }
];
exports.run = function(cardNo,imgCo) {
var outputString ='<div class="parent">';
var index;
cardNo = Number(cardNo);
imgCo = Number(imgCo);
if( imgCo == 0 ) {
outputString += '<$image source=SorcCard0'+cardNo+'.jpg class="image1"/>';
} else {
for( index = 0; index < imgCo; index++ ) {
outputString += '<$image source=SorcCard'+cardNo+'.jpg class="image'+(index+1)+'"/>';
}
}
outputString += '</div>';
return outputString
};
})();
(function(){
"use strict";
exports.name = "SPDModifier";
exports.params = [
{ name: "statName", default: "CHA" },
{ name: "spellLevel", default: "1" }
];
exports.run = function(statName,spellLevel) {
var chartiddler = this.wiki.getTiddler("CharacterData");
var charData = JSON.parse(chartiddler.fields.text);
var statModifier = "+";
if( spellLevel > 0 ) {
statModifier += Math.max( 0, Math.floor( (charData[statName]-2*spellLevel - 2)/8 ) );
} else {
statModifier += "0";
}
return statModifier
};
})();
(function(){
"use strict";
exports.name = "statModifier";
exports.params = [
{ name: "statName", default: "STR" }
];
exports.run = function(statName) {
var chartiddler = this.wiki.getTiddler("CharacterData");
var charData = JSON.parse(chartiddler.fields.text);
var statModReturn = "";
var statModifier = Math.floor( (charData[statName]-10)/2 );
if( statModifier < 0 ) { statModReturn = statModifier;
} else { statModReturn = "+"+statModifier; }
return statModReturn
};
})();
(function(){
"use strict";
exports.name = "unloadSpell";
exports.params = [
{ name: "spellName" }
];
exports.run = function(spellName) {
spellName = spellName || this.getVariable("currentTiddler");
var safeSpellName = spellName.replace(" Spell","");
var chartiddler = this.wiki.getTiddler("preparedSpellData");
var spellObject = JSON.parse(chartiddler.fields.text);
var spelltiddler = this.wiki.getTiddler(spellName);
var spellData = spelltiddler.fields;
var spellLevel = spellData.spelllevel;
var spellTags = spellData.tags;
if( spellTags.includes("Divine") ) {
var spellArray = spellObject["Druid"];
} else {
var spellArray = spellObject["Sorcerer"];
}
if( spellTags.includes("Domain" ) ) {
if( spellArray[spellLevel].lastIndexOf(safeSpellName) > 0 ) {
spellArray[spellLevel].splice(spellArray[spellLevel].lastIndexOf(safeSpellName),1);
} else {
spellArray[spellLevel][0] = "";
}
} else {
spellArray[spellLevel].splice(spellArray[spellLevel].indexOf(safeSpellName),1);
}
return JSON.stringify(spellObject)
};
})();
(function(){
"use strict";
exports.name = "unloadSpellCheckbox";
exports.params = [
{ name: "clssName", default: "Druid" },
{ name: "UDSpellName" }
];
exports.run = function(clssName,UDSpellName) {
UDSpellName = UDSpellName || this.getVariable("currentTiddler");
if( !UDSpellName.endsWith(" Spell") ) {
UDSpellName += " Spell";
}
var safeUDSpellName = UDSpellName.replace(" Spell","");
var spelltiddler = this.wiki.getTiddler(UDSpellName);
var thisSpellData = spelltiddler.fields;
var spellLevel = thisSpellData.spelllevel;
var charTiddler = this.wiki.getTiddler("SpellData");
var characterSpellData = JSON.parse(charTiddler.fields.text);
var spellArray = JSON.parse(characterSpellData[clssName+" Prepared "+spellLevel]);
var index;
for( index in spellArray ) {
if( spellArray[index] == UDSpellName ) {
spellArray.splice(index,1);
}
}
var newList=JSON.stringify(spellArray)
var outputString ='<$action-setfield $tiddler="SpellData" $index="'+clssName+' Prepared '+spellLevel+'" $value="""'+newList+'""" />';
return outputString
};
})();
[[01 Patrolling the Ice]]
Ulrik was patroling special places that need watching over - evil places - with his best friend Knut. They were caught by a pack of wolves and had to defend themselves. Side by side with a wall behind them, they fended off the hungry beasts and chased the rest away.
Along his path, he discovered that one of the evil places had risen above the ice. A huge stone cairn was exposed with a dark hole descending into unknown horrors. Ulrik and Knut were seen by some Orcs and had to fight them off. They threw javelins and the leader closed with a wicked two-handed sword, but they were bested.
On the way back to [[Master Thedrin's Grove|Thedrin]], Ulrik and Knut encountered a snow cat. A game of stealth and tracking ensued where it was not always clear who was the hunter and who the prey. Finally, Ulrik and Knut cornered the cat on a ledge and managed to bring it down, leaving it's pristine skin intact.
Camping overnight, Ulrik and Knut were visited by a strange creature from the Outer Planes of Ice (Imoth?). It told Ulrik of his Cold Soul and touched him and awakened his magic. Ulrik was now able to form ice into armor to cover himself or Knut.
[[Master Thedrin|Thedrin]] was informed of the evil place and [[Thedrin]], Ulrik, Knut went to investigate the evil place. [[Thedrin]] agreed that it was bad. He cast [[Hallow|Hallow Spell]] upon the place and then cast [[Blizzard|Blizzard Spell]] to cover the place with more feet than a man is tall.
[[Master Thedrin|Thedrin]] said that Ulrik was a //turik//, Wild Man, similar to an [[anagakok|Anagakok]], something he suspected since Ulrik was young. But something was awakened. He urged Ulrik to seek out the Wild Woman, Fenwir to better understand, and more importantly, //control// his new arcane powers.
@@.borderless
|!Loot |<|<|
| |Long wicked 2H Sword (Falchion) |<|
| |10 Javelins |<|
| |Skin Bags |<|
| | |Oily Ungent: Snowblindness |
| | |Pasty Ungent: Covers Wounds |
| | |Alchohol: Nasty Stuff |
| |Studded Leather Armor (normal quality) |<|
| |3 rings |<|
| |Chain pendent with skull |<|
| |2 Studded Leather Armors (low quality) |<|
| |Snowcat Pelt (high quality) |<|
| |Snowcat skull, bones and meat |<|
@@
XP: 600 + 900 + 1000 = 2500
[[02 Following Tracks]]
Ulrik and Knut continue to walk across the ice. They notice tracks leading from the deep part of the ice where the evil dwells to the south. They find torn up bodies, a fight. They keep following the tracks and find a band of hunters being attacked by zombies. They come to the help of the people and defeat the walking dead. A hunter and his young son, but only the son survives. He takes the son back to their village, meeting the //Urit// of the tribe, [[Telas]], Cleric of [[Ulutiu]]. Despite the hesitance to approach unknown people, he was well received and was told that the boy owes a life-debt. The zombies had an elven necklace on them. There were also pelts from a slain hunting party. [[Master Thedrin|Thedrin]] instructs Ulrik as a part of his development as an Icewalker, he is to go south and follow the tracks. See, learn and report on any evil. Thedrin has nothing more to show Ulrik - not that Ulrik doesn't have a lot to learn.
@@.borderless
|!Loot |<|<|
| |Elven Necklace |<|
| |4 Wolf Pelts |<|
| |20 fine rabbit pelts |<|
| |Giant Ice Spider Poison Glands (8-10 doses) |<|
@@
XP: 2500 (previous) + 1100 + 1800 = 6400
[[03 The Dog Fucker Lands]]
Ulrik was told that the next group of people he would meet would be the Dog Fuckers (It is known!). Following the tracks, he begins to approach the edge of the glacier, finding more flora and fauna in the snowy wastes. He encounters a man with two tranined dogs and he shows masterful control over their behavior. He is an enslaver of animals, not an equal as the icewalkers. Their greeting is cold but cordial and his name is [[Traxil Whitefur]]. But while they rest in his warm shelter, bandits approach. They fight off the bandits and this earns Ulrik and Knut information about how to get down from the glacier. There is the [[Rotting Ice Clan]] and the [[Thundering Water Clan]]. There is a bridge across a large river that the Thundering Water Clan controls.
@@.borderless
|!Loot |<|<|
| |+20 fine rabbit pelts (40 total) |<|
| |Metal Masterwork Spear |<|
| |2 Stone Knives |<|
| |Good Quality Carred Stone Ring |<|
| |2 Javelins |<|
| |2 Game bags |<|
| |First Aid Kit (6) |<|
| |Rare Plants and Herbs - treats head trauma |<|
| |4 Longswords |<|
| |4 Longbows |<|
| |22 gp, 37 sp |<|
@@
XP: 6400 (previous) + 1950 = 8350
[[04 The Bridge and the Ice]]
Saw a dead, ravaged corpse while following the tracks of the dead. They are persistently going south but everything in their path is in danger. The Elk Lovers at the bridge across the river told Ulrik about paths down off the ice. They also mention that there was a witch nearby and undead. Ulrik didn't feel up to taking on a witch, at least not while he had other matters to attend to. Whispering the magical secrets of the [[Eternal Lord of Sleep|Ulutiu]], Ulrik was able to steal lore of safe paths through treacherous ice. He saw places where the undead had simply gone over the edge of a cliff and many surely perished. Below the ice, Ulrik and Knut found themselves in the high mountains, full of flora and fauna. They avoided a yeti by its spoor. They also saw a hobgoblin on a pass, but decided not to attack it. He came upon a great battle between dwarves and goblins. It was a slaughter and no dwarves remained.
@@.borderless
|!Loot |<|<|
| |37 gp, 18 sp, 20 cp |<|
| |Sealed Ceramic Jar |<|
| |2 masterwork bags |<|
| |[[Tan Bag of Tricks]] |<|
@@
XP: 8350 (previous) + 1550 = 9900
[[05 The Land of the Nars]]
Ulrik and Knut eventually made their way out of the mountains to plains of snow. They saw a dragon grab some monstrous creature from the vast lake nearby. They saw horsemen riding and fighting on the plains below. Carefully they approached the tribesmen after the battle where he met the [[Var]] Tribe of Narfel. The land is known as [[Damara]] and these men worship [[Tempus]]. They tell him that to the east are the [[Kriel]], bad people who worship [[Talos]]. The soft lands to the south into Damara worship the Triad, 3 gods [[Torm]], [[Tyr]] and [[Ilmater]]. First Ulrik trades with the [[Var]] and makes good trades for coins used in the south. He also learns about the crafting of antivenom from the poison collected from the spiders. He gains a good report with the [[Var]]. He learns much of the gods and of magic from the Healer of the [[Var]]. He also helps them avoid an ambush party. His keen eyes and tracking skills uncovered a hunting blind used to hunt the [[Var]]. He trades the rest for iron at the walled stone city that the [[Var]] were traveling to. He takes on a job as scout and warrior for their trading boat going down river to [[Heliogabulus]]. There he can sell his iron for more coin.
@@.borderless
|!Loot |<|<|
| |Most Loot sold for 150gp and |<|
| | |1 emerald (??) |
| |120-150gp worth of iron |<|
@@
XP: 9900 (previous) + 925 = 10825
[[06 Heliogabulus]]
[[Two Bear Ranger|Filip and Lenara]] friends escort Ulrik around the enormous city of [[Heliogabulus]]. Ulrik is looking for either a wizard or someone who is sells arcane magic items. They suggest a trade fair, or market, which the [[Nakulultiuns]] do not visit. Ulrik suggests a tracker to help navigate the city, but they think they can figure it out.
Ulrik is skittish in crowds and frequents steps to the side of the street to wait for crowds to thin. They tell him just come on but he doesn't like bumping into people. They ask him where his money is. He hefts a finely-made bag. Put it away and if someone bumps you check to make sure you still have it. "No one will take it from me."
Strange smells prompt, "We should keep an eye out. Make sure none of these people are dead." Ulrik stops at a shop inspecting the window. "Your ice is not cold!" The tailor comes out and shoos him away. He lingers a bit longer at the window but eventually departs.
Taking in the sights, smells and cacophonous noise of the market, he points out some Elves, "I've seen them dead on the ice. I think they were attacked by the moving dead."
They finally get to the magic shop. "Is it legal to see magic auras?" The shop keeper, Kathyln Forald, tells him what types of spells are definitely taboo and which should be OK. Ulrik asks if there are any other //kairuit//, or special taboos that he shouldn't inadvertently do. She can't think of any specifically.
Ulrik offends her as he dances around the question of someone who casts arcane spells and knows arcane lore. He pulls the cover off his left arm and shows a nasty burn-scar in a multiple-helical shape up his arm. No one present reacts. He explains that this is what his tribe does to arcane casters. It's not an honorific but a painful punishment. That is why he's careful about asking about arcane magic.
The shop keeper gives him the name of [[Jerrin Kellingsford]], a sage who specializes in the magical lore. As they get to Kellingsford's street with nice houses, Ulrik asks, "Are all of these for one god or different gods?" His friend doesn't really understand the question but gives Ulrik the impression that there are many gods.
They introduce themselves to [[Jerrin Kellingsford]] who is a sage for hire and who casts spells for trade. They get through introductions and Jerrin switches to Ulutiun. Ulrik tells him of his experiences on the ice with magic, his questions, his encounter with an Imoth. He also asks about [[Mystic Theurges|Mystic Theurge]] and Priests of Mystra and gets a contact, [[Solatir Erestez]], Cleric of Mystra in a small temple on Temple Row next to the Temple of [[Chauntea]].
Jerrin and Ulrik demonstrate some spells and agree to a week of study and experimentation. They get around to his reason for being in the Warm Lands and he pulls out maps and books with weird sigils marking evil places and indicates that it looks as though the undead are traveling towards Rappan Athuk. The Bear Rangers know of this place and say that the king is arranging a expedition there. Ulrik is obliged to follow, to see and to report.
The temple is on the completely other side of town. They stop to eat. It's a difficult process. Ulrik doesn't want to be fuzzy on fermented milk when he speaks with Solatir. He wants meat, roots and water. They give him stew and nasty water. Tomorrow he'll just have to deal with the indigestion, but he's going to keep a [[Purify Food and Drink Spell]] handy from now on. When he pays he pulls out his big bag of gold (about 400 coins, mostly gold) and gets scolded harshly for showing it off. "Can I kill those who take my food?"
"Well, no, you call the guards. Only hurt them."
"That is fine. I will hurt them until the guards kill them."
They enter the Temple of [[Mystra]] to see a music show with dancing lights and shadows. His friends aren't very impressed but Ulrik is fascinated. They go into the back to discus more magic and religious lore. His friends decided they've had enough study for the day and go get another ale.
Ulrik mistakenly loses control of an arcane spell, again, and animates a bench which he's able to control before the magic fades. He tries again and shows [[Solatir|Solatir Erestez]] his magic. Solatir agrees to train him now and in the future because of his service to the king against [[Rappan Athuk]] for a choice of his among Ulrik's magic items from that place.
@@.borderless
|!Loot |<|<|
| |Sell iron for 140gp |<|
| |Training in Arcane and Divine Magic |<|
@@
At this point, Ulrik's money totals are:
@@.borderless
|!Money Totals |<|<|
|415 gp | |<|
|65 sp | |<|
|28 cp | |<|
| 1 emerald (??) | |<|
@@
XP: 10825 (previous) + 0 = 10825 (no xp)
@@.borderless
|!Loot |<|<|
|+1 Composite Short Bow (STR 16) (Jennifer)| |<|
|2 Arrows +1 of Flaming | |<|
|Cure Moderate Wounds Potion (CL 7) | |<|
|Studded Leather +1 (Keith)| |<|
|2 Tanglefoot Bags | |<|
|40 Normal Arrows | |<|
|Masterwork Battle Axe | |<|
|13 gp | |<|
|Vial from Ghouls | |<|
|Crossbow | |<|
|Meh Armor | |<|
|Tanglefoot Bag | |<|
|28 gp | |<|
|7 Nasty Armor | |<|
|7 Hvy Wood Shield | |<|
|7 Flails and Battle Axes | |<|
|14 Daggers | |<|
|7 Long Bows | |<|
|140 Arrows | |<|
@@
@@.borderless
|!Money Totals |<|<|
|41 gp | |<|
| | |<|
@@
XP: 10825 (previous) + 700 = 11525
@@.borderless
|!Loot |<|<|
|Ring of Protection +2 (John) | |<|
|Drinking Skin | |<|
|Scroll Tube with Maps | |<|
|Small Book Travel Log | |<|
|Metal Shield +1 (Jennifer) | |<|
|+1 Long Sword (Jonathan) | |<|
|Rope 50' | |<|
|Flint & Steel | |<|
|2 Long Swords | |<|
|2 Long Bows | |<|
|60 Long Arrows | |<|
|20 Iron Spikes | |<|
|Crowbar (John) | |<|
|Twine | |<|
|Bottle of Holy Water (Jeff) | |<|
|30 sp | |<|
|Water Skin | |<|
|15 Iron Spikes | |<|
@@
@@.borderless
|!Money Totals |<|<|
|41 gp, 30 sp | |<|
| | |<|
@@
XP: 11525 (previous) + 953 = 12478
@@.borderless
|!Loot |<|<|
|175 gp | |<|
|Chain Mail | |<|
|Masterwork Chain Shirt | |<|
|Spearhead | |<|
|4 Normal Arrows | |<|
|+1 Arrow | |<|
|76 gp | |<|
|Gem (200 gp) | |<|
|20 gp | |<|
|100 sp | |<|
|231 cp | |<|
|Silver Necklace (200 gp) | |<|
|+1 Dagger (Eric) | |<|
|207 gp | |<|
|3072 sp | |<|
|5184 cp | |<|
@@
@@.borderless
|!Money Totals |<|<|
|519 gp, 3202 sp, 5415 cp | |<|
|Gems: 200 gp | |<|
|Jewelry: 200 gp | |<|
@@
XP: 12478 (previous) + 506 = 12984
@@.borderless
|!Loot |<|<|
|Mystral Clerical Vestments (John) | |<|
|5 gp | |<|
|3 Gems 150, 125, 250 | |<|
|25 gp assorted coins | |<|
|Gold Filigred Plate (400 gp) | |<|
|Centipede Poison (Raw) 5 doses (John) | |<|
|5 Iron Spikes | |<|
|Lantern | |<|
|Pt of Oil | |<|
|50 ft Rope | |<|
|200 gp | |<|
|Boots of Striding and Leaper (Chris) | |<|
|Masterwork Long Sword | |<|
|Wand Magic Missile CL 5 31 chrgs | |<|
|Wand of Lesser Restore CL 5 41 chrgs | |<|
|3 Gems (250 gp each) | |<|
|1000 pp | |<|
@@
@@.borderless
|!Money Totals |<|<|
|1000 pp, 749 gp, 3202 sp, 5415 cp | |<|
|Gems: 1475 gp | |<|
|Jewelry: 600 gp | |<|
@@
XP: 12984 (previous) + 263 = 13247
Just finished fighting demons. The evil cherub is on the floor, while the two dretchs went poof. There's an empty room. No magic to be seen. The gizzlies are still flying around. Searching the room finds 250 gp and a small silver statue (100) in the crap.
Continue around the corner and encounter a long hallway with a door. Room appears to once have been a kitchen. Rusty knife next to an old stain. As some search the kitchen, the others in the hallway see a giant two-foot rat head look around the corner and hiss. Then it charges with movement in the darkness behind it. Combat ensues. Two shield bearers move up to hold the line while the cat mage sprays the approaching rats with miasmic colors. Four shake it off and keep coming. Spells, blows and then two shambling human figures come out (both missing their left hands). Urus Bear tries to fly over the shield wall, pinballs off the walls and ceiling and lands behind the two shamblers. Really big rat attacks the bear. The zombies blow up with gore when killed. Filip tumbles through the melee and heals Urus. Urus kills the big rat. The rest of the rats are dispatched. The rats are horribly diseased, especially the big one.
9 Goodberries Left
As the group reconnoiters and Ulrik checks out where these hallways go, a swarm of roaches approaches from the hallway across from the door. Lothol and Filip launch alchemist fire. Cryus runs into the swarm and bursts into flame. The swarm disperses. Giant banquent hall with smashed tables, pile of crap in the north corner and a bas relief of Orcus. Search the rat pile and find some treasure. Teran tries to push past a barrier around the relief of Orcus, pushes through it, touches the figure and turns to dust, to be snorted up by Orcus. Moments later, inexplicably Cyrus joins him. (Death from Above!) Everyone stops, takes a break, eats and waits to see if they come back. They do finally. That's when we find out about Teran's Quasit.
He appeared in a room with dark, dank, cold, cobwebbed. They appeared on a metal disc. There was a second disc. Standing on the disc returned them. THere appeared to be a dial that could be "aimed".
The roach room is a 20x30 room with 7 doors. Starting on the N wall, enter a bedroom that's been destroyed. Find a chest under the bed. Chest trapped. Inside notes. Comprehend Languages spell produces words but no meaning. It mentions "the Pestilent" in Abyssal. Next door is a small cloistered bedroom that's been trashed. Next door on the east wall is a 20x20 bedroom with a zombie in gore-stained white robes laying on the bed. It gets up, gets hit a bunch of times and then positive energy burst and explodes in gore. Has golden holy symbol of Amintor.
So all three zombies have had their left hand cut off, post mortem, it seems, and there are religious relics to Amintor, Cyrus' heretical god-figure.
Past the rat room, there is a locked door. An unremarkable 40 corridor with another locked door. Hallways with two surgery rooms and then another locked door. Behind it, 4 zombies. Large oddly shaped room with a puddle of green goo in the NE corner. Pictures on the wall of a white robed figure healing angelic figures, a diety, etc. No holy symbols. Goo sickens Mriff.
Try going up the stairs to see if we recognize them. Enter a strange dumbell-shaped room. Illusions and mosaic mirror. False chest and illusory-hidden stairs. We go back down. Hallway and room filled with the green goo. On the far side, books, a locked cabinet and an indention showing a left hand. Green goo oozing from a passage on the right. Larger room with more green goo.
@@.borderless
|!Loot |<|<|
|250 gp | |<|
|Silver Statue of Amintor (100 gp) (Jeff) | |<|
|170 cp | |<|
|212 sp | |<|
|182 gp | |<|
|Coronet | |<|
|5 Daggers | |<|
|Scrap of gold-embroidered cloth | |<|
|+1 Dagger (Keith) | |<|
|Magic Spork (Detect Poison 1/day) (John) | |<|
|Gold Holy Symbol of Amintor (250 gp) (Jeff) | |<|
|Gargoyle Statue 2500 gp | |<|
|Wand of Restoration for now ? | |<|
@@
@@.borderless
|!Money Totals |<|<|
|1000 pp, 1181 gp, 3414 sp, 5585 cp | |<|
|Gems: 1475 gp | |<|
|Jewelry: 3100 gp | |<|
@@
XP: 13247 (previous) + 358 = 13605
Brought back several books and four scrolls. As Teran, Filip and Mrif are looking at the hand indention when three lumps rise from the green goo. As combat with goo monsters turned zombies commences, yellow-brown goo is coming out of the southern door in the other room. Electricity, Burning Hands and Firebolts and Alchemist Fire are thrown wildly about the room, sometimes burning the approaching Jelly as the zombies are dispatched in the other room. Ulrik has decided not to use Storms on oozes any more. Ulrik summons a fire elemental and the oozes are finally burned.
Find a room with three statues of gold. Lifting the Unicorn causes it and the Pegasus to disintegrate. Keep the gargoyle. We go into the Healing and Recovery and it's an large, oval empty room filled with destroyed ditritus and defaced murals. All left hands missing. White robed figure healing. We go to the hand imprint and Cyrus puts his hand there and disappears. Terran follows.
Cryus and Terran go into an octogonal room and attacked by a ball of light. Another hand imprint which they use to escape the ball of light. Into a room filled with hand imprints, a table, and a white robed skeleton with a scroll of Cure Disease in a scroll case. Cyrus and Terran return, singed.
We all go through the octoganical room. Furniture and cabinets. An arrow takes out the Positive Energy Guardian. We find potions and books, two locked and some clues about summoning demons and curing. Cyrus flexes his cleric muscles and casts three Remove Disease scrolls on the infected party members. We go through the other hand portal to the room with 4 hands.
We go to the furnished room and rest up for 16 hours and get our spells back.
@@.borderless
|!Loot |<|<|
|Cure Light Wounds (L5) Scroll x3 | |<|
|Remove Disease (L12) Scroll x4 | |<|
|Cure Moderate Wounds (L8) Potion x2 | |<|
|8 Vials of Nondisgusting Stuff | |<|
|Book with Lock | |<|
|6 Large Books | |<|
@@
@@.borderless
|!Money Totals |<|<|
|1000 pp, 1181 gp, 3414 sp, 5585 cp | |<|
|Gems: 1475 gp | |<|
|Jewelry: 3100 gp | |<|
@@
XP: 13605 (previous) + 281 = 13886
First thing in the morning, Ulrik creates a Blizzard in one of the hand-print bedrooms which also pretty much covers the intersection room. He casts Snowsight to get out and has ice and snow for his spells. The group also decides to go back through the intersection room to avoid the disease ooze and so Ulrik and Knut have to help everyone through. We know of one pit with roaches but Lothar misses the others and the portculus that falls down between the party. Cyrus and Mrif manage to get through but Teran and Klar are stuck on the other side. After much feminie brute force and screeching noise, they are freed.
We come to the beginning of the dungeon and continue to explore the last hallway of the dungeon. We find a locked store room that requires a ranger to open and we find a store room full of ancient foodstuffs and angry spiders. Spears and Bears were employed in the killing of the spider.
Checking further down the hallways with alcoves, noises behind us only alert a couple. Kill a bunch of marauding rats. Alcoves appear empty. A diagonal room with murals with white robes figures with outstretched hands and one is blackened and defaced. To the north a room filled with disease ooze. Talk of freezing it but we try the east door first. Another room with two exists and busted doors and from the south door, red eyes come busting through the door and it's a large rat of unusual size.
Kill the rat and find its nest empty of interesting items. The east door has a destroyed bedroom. Find a hidden closet. Bundle of scrolls with a note about daliances with women. Other loots.
Running out of exits, we send the Paladin who is immune to disease check the other door. He finds a bedroom with dire rats. As the paladin readies for rats, four dretches appear behind him. Paladin backs against the northern wall while rangers go in to get diseased. Another summoned swarm of bats appears. One dretch emits a foul cloud. Two of the Dretches come out of the Stinking Cloud and get dispatched. The swarm of bats fails to bother Urus. An imp similar to the one fought before appears and tries to worry Klar. All of the dretches killed and the imp disappears. A few enter the disease ooze to find the imp while another bat swarm is summon on top of Klar. Cyrus and Klar attack the air trying to connect. The imp seems to teleport away leaving nothing but quiet and lots of loot.
@@.borderless
|!Loot |<|<|
|Silver Server Plate (100gp) | |<|
|Big Box with 1210sp | |<|
|Little Box with Sapphron (200gp) | |<|
|Bag with 245sp | |<|
|Bundle of 3 Scrolls | |<|
|5 Golden Rings "My One and Only" (50gp each) | |<|
|Silver-headed Light Mace | |<|
|Leather Bag with 500gp | |<|
|Earring, Obsidian Spear "Rappan Atthak" | |<|
|Small Box of Sapphron (200 gp) | |<|
|20630 cp | |<|
|10349 sp | |<|
|2000 gp | |<|
|4 Gems (100 gp each) | |<|
|Ornate Wand Eagles Splendor CL 3 32 chgs | |<|
@@
@@.borderless
|!Money Totals |<|<|
|1000 pp, 1681 gp, 15218 sp, 26245 cp | |<|
|Gems: 1875 gp | |<|
|Jewelry: 3650+200 gp | |<|
XP: 13886 (previous) + 533 = 14419
Go up to the dumbell mirror/mirage room and go down the only exit. Locked door that requires inexpert techniques to open. Beyond, stairs going down. Through the door, hallways slowly descending and a moss and wet filled room with a 6ft wall and a metal handle on the wall with discolored stone. Lumps of armor on the floor covered in lichen and moss. As Lothol creeps into the room, the wall rears up and appears to be a giant stone snake as the water it held back pours into the room. The snake is vulnerable to magic but shrugs off weapons. Magic brings it down (Huzzah!). The metal handle pulled by Teran's Demon reveals just a cavity. Containing baubles and bottles. Down stairs into some ankle-deep nasty water and back up stairs and we find the bottom of the rungs in the pool room above with a dead Gnoll under them. Door across. Empty Room. The next empty room, the floor drops 10 ft with Ulrik, Lothol and Filip. Lothol fails to jump up, ropes are thrown and missed. Knut fails to under what he's supposed to grab and gets grabbed in return. Cyrus pulls Ulrik up and Lanara, Mrif and flying bears to trying to pull up Lothol. Knut plays while Cyrus pulls up Ulrik and the faerie bears get Filip and Lothol out just as zombies approach. After the zombies the falling room fills up with yellow poison clouds. The next door is damp and screams when opened. A Frost Breath wasn't enough to silence the shrieking. Some attacks and Body of the Sun stop their yelling but they attracted some Stirges who attack M'rif.
@@.borderless
|!Loot |<|<|
|Potion of Invisibility CL 5| |<|
|Scroll Tube Hide from Undead CL 3 | |<|
|Ornate Dagger +1 | |<|
|6 +1 Long Arrows (Keith and Eric 3 each) | |<|
|Gem (500 gp) | |<|
@@
@@.borderless
|!Money Totals |<|<|
|1000 pp, 3681 gp, 4878 sp, 5585 cp | |<|
|Gems: 2375 gp | |<|
|Jewelry: 3650+200 gp | |<|
XP: 14419 (previous) + 1845 = 16264
Continuing down the hallway we encounter a cathedral like room and get attack by a large brute of a gargoyle, who shrugs off attacks with his stony skin. Magic and a few magic weapons brings him down. Meanwhile, two gnolls are shooting from the hallway across. Chasing the gnolls bring Cyrus into a giant ambush of Knolls. A few grogs are taken out by a Negative Energy Burst, but they quickly bring Cyrus down. Faced with heros and a whip-wielding matriarch, the group tries to fight the gnolls while Cryrus gets dragged out. Then Lanara has to get dragged out. Spells and arrows fly but a healing potion undos much of the hard work. Finally she goes down and loot is collected. One of the gnolls ran away and the group follows.
In a square room, a magic door and a pit. Touching the door teleports Cyrus over the pit and at the bottom of the pit is a button in an Orcus Face. Teran pushes the button and has rocks almost crush him. It also turns off the magic on the door. On the other side is a square room with a pool. Filip goes into the water and finds two magic items and a golden skull.
A couple of rooms later we come upon a room filled with gibberish writing and through other door meet a wild man with orange robes and eyes who gets mad that we're interrupting his studies. Push him back into the room and beat him up after failed negotations. Teran's quasit goes crazy in the writing room and tries to Commune with distasterous results. We get scryed by a high power.
Before going to camp, search a little further and find some spiderweb rooms and a newly painted room with an altar and crypt off the sides. Open the sarcophagi and find two easy skeletons and a nasty black skeleton. Lanara, Lothol and the two grizzly bears and panicked and go running off. The skeletons are eventually brought down. The group reconnoiters and camps.
The next morning the group tries the talking head altar again. Experience or Reawakening. Filip and Lothol both enters and Lothol is cursed to be 1 ft tall. Neither get the Head to talk until Lothol leaves. Filip says "Reawakening" and nothing. He says "Experience" and gets more powerful just as Teran did before. One more charge left on the pillar so Ulrik enters. He is cursed with invisibility and also tries "Reawakening" and gets nothing but tries "Experience" and gets more powerful. The group waits for the curses to end and continues to the spiderweb room.
The group enters the spiderweb room and is attacked from behind by two giant teleporting spiders. The spiders' poison is doing nasty work. They keep blinking in and out tagging people. Beyond the final room full of webs, another room with three hidden niches filled with three bags.
Find a round room with a statue of a black plate clad warrior with ram headed helmet and covered in golden runes. Then found a prison complex that had been turned into gnoll barracks. Searched the area and found no traps, fake rocks and a moot warning.
Continue to find an arrow-head room with a statue of a dragon riding warrior and a scummy pool in front. Magical Shield. Messing with the pool causes the bat on the shield to detach and attack.
Further south are stairs going up and going to the cobra room in the level above. To the east of those stairs is a diamond shaped room with a floor of fire and chains hanging from the ceiling. An impish Orcus button at the side of the door but Lothol sees suspicious building in the hallway leading to the room.
@@.borderless
|!Loot |<|<|
|+1 Composite Bow (+4)| |<|
|+1 Scorpion Whip | |<|
|2x Vials Cure Light Wounds (CL5) | |<|
|+1 Cloak of Resistance (Jonathan) | |<|
|Pugwampi Braid (Eric) | |<|
|Masterwork Splint Armor | |<|
|Masterwork Light Metal Shield | |<|
|Masterwork Javelin | |<|
|Masterwork Heavy Metal Shield (Chris) | |<|
|Masterwork Battle Axe | |<|
|2x Masterwork Chain Shirt | |<|
|Masterwork Spear | |<|
|Pearl of Power Lvl 1 (Jeff) | |<|
|Lens of Detection (Eric) | |<|
|Golden Skull (1000 gp) | |<|
|Everburning Candle | |<|
|+1 Light Mace (Keith)| |<|
|3 Cure Light Wounds (CL 5) Potions (1 Keith) | |<|
|200 gp | |<|
|200 gp | |<|
|15 sp | |<|
|Scroll of Read Magic | |<|
|Ivory Figurine of Wood Nymph | |<|
@@
@@.borderless
|!Money Totals |<|<|
|1000 pp, 3881 gp, 4878 sp, 5585 cp | |<|
|Gems: 2375 gp | |<|
|Jewelry: 3650+200 gp | |<|
XP: reset to 23001
XP: 23001(previous) + 1526 = 24527
Filip summons an air elemental to push the buttons in the room of fire and platforms extend halfway into the room that allow us to cross. We continue to a hallway that looks like a bloodtrail and Lanara's escape. We find a fine room with crumbling furniture and a perfect rug and continual flame candles. Teran steps onto the rug and falls asleep. He can't be woken it up. Nothing of interest in the room so we roll up the magic rug and find a trap door underneath. Magically trapped and leads to a small, hardpacked dirt cellar. We continue to the shaft with rungs and find that it goes up about 60 ft into a diamond shaped room we had been in before.
Back to the fire room, we use arrows instead of spells to press buttons and extend the platforms to get to the door. We go to a Fuckajohnagon-shaped room with three sarcophagi when gems on top. As the group checks secret doors, Ulrik, Cyrus and Knut get attacked by shadows. We kill the shadows and open the coffins. Open the coffins, loot the remains.
The Cobra Stairs room had a sliding staircase trap. Found a couple of gems. Then went to the green flame altar room under the statue and investigated. Attacked by a //giant// green snake.
Finally, we go back to the room of green ooze, library books and hand portals. We send Klor the immune paladin down the stream of ooze to see what's down there. He was attacked by four demon babies with gemstone eyes. More coming. We get ready to fight summoned bat swarms but also dire rats and centipedes. Cyrus goes down into the ooze as we fight demon babies outside in the large room. Two more blind demon babies come out of a diseased pool along with centipedes. Cyrus and then eventually Lanara fight the demons. Inside the room is a statue to Amintor, desecrated with a necklace of severed left hands.
@@.borderless
|!Loot |<|<|
|Ivory Figurine of Wood Nymph | |<|
@@
@@.borderless
|!Money Totals |<|<|
|1000 pp, 3881 gp, 4878 sp, 5585 cp | |<|
|Gems: 2375 gp | |<|
|Jewelry: 3650+200 gp | |<|
XP: 24527 (previous) + ?? = ??
The statue in the green ooze is completely desecrated. Rivers of ooze in both directions. The group decides to go outdoors to experiment with the ooze and rest in nature. Hunting parties go out to collect fresh food. The Paladin shoots something "untoward" with his bow. Lots of people hear the cry and head towards the sound. The Paladin has a heated conversation with a giant wolverine over the issue of an arrow sticking out of her pup. Negotiations were finished and left no one satisfied. The Paladin heals the injured critter and runs like hell. The Rangers find the hunting blind and discarded bow and a dead rabbit.
Next day we load up on light and remove disease spells and head back down to the ooze. We find the statue has been redesecrated. The Sunlight spell doesn't seem to have an affect. As Cyrus enters the Shrine room, things are bubbling up out of the pool and he calls out for help.
The group runs in, taking diseases and fights demons and zombies. After killing the demons, a tie between the string of hands and the pool of ooze is discovered and exploited. Threw the hands into pool and started a glowing, white-hot transformation of the statue. The ooze is vaporized in holy sunlight and all of the diseases are lifted. The shrine room is now spotless and there is no hole where the ooze was. Cyrus is congratulated by Amintor.
Filip gets lost in the maze of left hand teleporters. We go back to Easter Island and two people get levels while one gets eaten.
@@.borderless
|!Loot |<|<|
|12 ruby "eyes" | |<|
@@
@@.borderless
|!Money Totals |<|<|
|1000 pp, 3881 gp, 4878 sp, 5585 cp | |<|
|Gems: 2375 gp | |<|
|Jewelry: 3650+200 gp | |<|
XP: ?? (previous) + ?? = ??
Entering the right side building. The key fits the lock and it opens. Inside a jumble of sarcophagi. The [[Gargoyle]] who flew off to the north veers west. Ease in to the crypt. The sacrophagi are shattered, three of which we are certain were shattered from the inside. 11 in all. No treasure or secret doors but tracks over the decades.
Turn to the left. Smaller building. Half as many sarcophagi. Not damaged but they are open. Two copper coins. [[Gargoyle]] is circling and doesn't land. We go south to the tree line and find a camping spot. At 3rd watch at night, hear a loud roar of an angry dragon and the crashing of trees to the east. Filip sees a dragon with a limp humanoid figure that could be a giant.
In the morning, spells refreshed, we investigate. We find frost giants killed by the dragon. Looks like they attacked the giant. Tracks head up the mountain to the south.
After debate and discussion, continue back to the the crypts. [[Gargoyle]] is back in place, not flying around. We investigate the well. Sending Lanara down on a rope, she's feared and pulled back up. Then Klor goes down who is immune fear. There's a cave with black green water at the bottom with stuff floating in it. It's a cave with passages heading out. Decide not to pursue that route.
We approach the door with the key waiting for [[Gargoyle]] attack. Gargoyles watch us approach. Key opens the lock and disappears. The mechanism turns into a full figure of Orcus. Large room with sarcophagus in the middle with two brass candleabra with black candles giving off an eerie light. Adventuring detretis litters the floor. Sarcophagus-sized indention in the ceiling. Cyrus attempts to open the sarcophagus. He gets it with the crowbar. Cyrus sees a skeletal figure, "You fucked up." Skeleton comes flipping out, a [[Black Skeleton]] like in the shadow room. It attacks with strength draining evil power. Klor smites it! Filip shoots it. Lanara flubs it. Cyrus explodes it.
A trap door behind the sarcophagus. After much straining, a 10 ft shaft with rungs descending. Knut gets down without rope. Smears of muck on the walls. After 100 ft, there's a pit trap with a door at the bottom. Nausea strikes Cyrus. Passage continues for 60 ft to an iron-bound wooden door. Enter an area of worked stone strewn with bits of bone and door. Breeze coming from a gnome-sized hole in the opposite wall next to a door. Whispering. "That one was mine." "I found it first". After a hallway, another room with a worm-ridden RED CARPET with a pedestal and casket with candlebra. The quasit investigates the tunnel and finds a warren of rats. Ulrik is nauseated.
Room with broken furniture with a large chair and a table with a skeleton sitting in the chair. Red things moving all over it. Hands on a deck of cards. Lothol knocks the head off and red ants swarm across the floor deflected by a Create Water spell by Lanara.
Continue down a funky hallway to the south and an encounter [[Gelantinous Cube]]. Past that it turns more natural and opens into a big cavern with fast running water and natural ceilings. To the right fallen in with space above. Eyes were seen in the distance and they hide and wait for ambush. Also little tunnels like the past rooms. An opening across the river. Body in the opening. Skeleton with no head and a helmet next to it.
@@.borderless
|!Loot |<|<|
| | |<|
@@
@@.borderless
|!Money Totals |<|<|
|1000 pp, 3881 gp, 4878 sp, 5585 cp | |<|
|Gems: 2375 gp | |<|
|Jewelry: 3650+200 gp | |<|
XP: ?? (previous) + ?? = ??
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Aboleth's Lung
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M/DF (piece of seaweed)
Range: touch
Targets: living creatures touched
Duration: 1 hour/level; see text
Saving Throw: Will negates Spell Resistance: yes
"""
The targets are able to breathe water, freely. However, they can no longer breathe air. Divide the duration evenly among all the creatures you touch. This spell has no effect on creatures that can already breathe water.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Abstemiousness
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V
Range: touch
Targets: a handful of berries, grains, nuts, or rice
Duration: 1 hour
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
Sometimes Irori smiles on his worshipers, granting them a reprieve from physical hunger. This spell magically enhances a handful of simple food, imbuing it with enough nutrition to satisfy a Medium or smaller creature for a full day. The spell does not create food, and thus will not alone prevent someone from starving, but it can extend even limited reserves for lengthy periods.
Source: Inner Sea Gods
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Accelerate Poison
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a thorn)
Range: touch
Targets: creature touched
Duration: instantaneous
Saving Throw: Fortitude negates Spell Resistance: yes
"""
You hasten the onset of poison in the target. If the poison normally has an onset time, its effects begin immediately. If the poison has no onset time, its frequency is doubled, requiring two saving throws and inflicting damage twice per round or minute, though its duration is halved. Accelerate poison does not change the cure condition for the poison. If the target is affected by more than one poison, you may choose which is affected if you administered the poison; otherwise, randomly determine which poison is affected.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Accept Affliction
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (healing) [good]
1 standard action V, S, M/DF (dove's heart)
Range: touch
Targets: creature touched
Duration: instantaneous
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
The caster can transfer the effects of afflictions such as curses, diseases, and poisons from the target creature to himself. This spell can also transfer the blinded, deafened, fatigued, nauseated, shaken, and sickened conditions. All aspects of the transferred afflictions (save DCs, remaining duration, removal conditions, and so on) remain the same, but affect the caster instead of the original target. After transferring the affliction or condition, the caster is free to cure it in any way he can.
Source: Champions Of Purity
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Acid Maw
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, DF
Range: close (25 ft. + 2 ft./level)
Targets: your animal companion
Duration: 1 minute/level
Saving Throw: Will negates (harmless) Spell Resistance: yes
"""
Your animal companion's bite attack deals an additional 1d4 points of acid damage, and the acid deals another 1d4 points of acid damage to the target on the next round. The acid continues to deal damage for 1 additional round per 4 caster levels (to a maximum of 6 total rounds at caster level 20th). This ongoing acid damage doesn't stack from multiple attacks, but the duration resets if a newer bite would cause the ongoing damage to last longer than the duration remaining from a previous one. The acid does not harm the animal companion.
Source: Advanced Class Origins
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Acid Splash
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
conjuration (creation) [acid]
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Effect: one missile of acid
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
You fire a small orb of acid at the target. You must succeed on a ranged touch attack to hit your target. The orb deals 1d3 points of acid damage. This acid disappears after 1 round.
Source: PFRPG Core
You can keep your balance while traversing narrow or treacherous surfaces. You can also dive, flip, jump, and roll, avoiding attacks and confusing your opponents.
The following modifiers apply to all Acrobatics skill checks. The modifiers stack with one another, but only the most severe modifier for any given condition applies.
|!Acrobatics Modifiers |!DC Modifier|
|Lightly Obstructed (gravel, sand) | +2 |
|Severely Obstructed (cavern, rubble) | +5 |
|Slightly Slippery (wet) | +2 |
|Severely Slippery (icy) | +5 |
|Slightly Sloped (<45°) | +2 |
|Severely Sloped (>45°) | +5 |
|Slightly Unsteady (boat in rough water) | +2 |
|Mildly Unsteady (boat in a storm) | +5 |
|Severely Unsteady (earthquake) | +10 |
|Move at full speed on narrow or uneven surfaces | +5^^1^^ |
"""
^^1^^ This does not apply to checks made to jump.
"""
!! Common Uses
The Acrobatics skill has three distinct uses:
* Cross Narrow Surfaces/Uneven Ground
* Move Through Threatened Squares
* Jumping and Falling
!! Cross Narrow Surfaces/Uneven Ground
First, you can use Acrobatics to move on narrow surfaces and uneven ground without falling. A successful check allows you to move at half speed across such surfaces—only one check is needed per round. Use the following table to determine the base DC, which is then modified by the Acrobatics skill modifiers noted below. While you are using Acrobatics in this way, you are considered flat-footed and lose your Dexterity bonus to your AC (if any). If you take damage while using Acrobatics, you must immediately make another Acrobatics check at the same DC to avoid falling or being knocked prone.
|!Surface Width |!Base Acrobatics DC|
|Greater than 3 feet wide | 0^^1^^ |
|1–3 feet wide | 5^^1^^ |
|7–11 inches wide | 10 |
|2–6 inches wide | 15 |
|Less than 2 inches wide | 20 |
^^1^^ No Acrobatics check is needed to move across these surfaces unless the modifiers increase the DC to 10 or higher.
!!! Cross Narrow Surface DC Modifiers
''Balancing Pole'': Using a balancing pole while traversing a narrow surface grants a +1 circumstance bonus to the Acrobatics check.
!! Move Through Threatened Squares
In addition, you can move through a threatened square without provoking an attack of opportunity from an enemy by using Acrobatics. When moving in this way, you move at half speed. You can move at full speed by increasing the DC of the check by 10. You cannot use Acrobatics to move past foes if your speed is reduced due to carrying a medium or heavy load or wearing medium or heavy armor. If an ability allows you to move at full speed under such conditions, you can use Acrobatics to move past foes. You can use Acrobatics in this way while prone, but doing so requires a full-round action to move 5 feet, and the DC is increased by 5. If you attempt to move through an enemy’s space and fail the check, you lose the move action and provoke an attack of opportunity.
|!Situation |!Base Acrobatics DC^^1^^|
|Move through a threatened area |Opponent’s Combat Maneuver Defense |
|Move through an enemy’s space |5 + Opponent’s Combat Maneuver Defense |
1 This DC is used to avoid an attack of opportunity due to movement. This penalty increases by +2 for each additional opponent avoided in one round.
!! Jumping and Falling
Finally, you can use the Acrobatics skill to make jumps or to soften a fall. The base DC to make a jump is equal to the distance to be crossed (if horizontal) or four times the height to be reached (if vertical). These DCs double if you do not have at least 10 feet of space to get a running start. The only Acrobatics modifiers that apply are those concerning the surface you are jumping from. If you fail this check by 4 or less, you can attempt a DC 20 Reflex save to grab hold of the other side after having missed the jump. If you fail by 5 or more, you fail to make the jump and fall (or land prone, in the case of a vertical jump).
|!Long Jump Acrobatics DC |
|5 feet | 5 |
|10 feet | 10 |
|15 feet | 15 |
|20 feet | 20 |
|Greater than 20 feet | +5 per 5 feet |
|!High Jump Acrobatics DC |
|1 foot | 4 |
|2 feet | 8 |
|3 feet | 12 |
|4 feet | 16 |
|Greater than 4 feet | +4 per foot |
!!! Jump DC Modifiers
''Faster Base Movement'': Creatures with a base land speed above 30 feet receive a +4 racial bonus on Acrobatics checks made to jump for every 10 feet of their speed above 30 feet. Creatures with a base land speed below 30 feet receive a –4 racial bonus on Acrobatics checks made to jump for every 10 feet of their speed below 30 feet. No jump can allow you to exceed your maximum movement for the round.
''Running Jump'': For a running jump, the result of your Acrobatics check indicates the distance traveled in the jump (and if the check fails, the distance at which you actually land and fall prone). Halve this result for a standing long jump to determine where you land. Also, see Pole.
''Pole'': If you use a pole as part of a running jump, you gain a +2 circumstance bonus on your Acrobatics check (but must let go of the pole in the process).
''Falling'': When you deliberately fall any distance, even as a result of a missed jump, a DC 15 Acrobatics skill check allows you to ignore the first 10 feet fallen, although you still end up prone if you take damage from a fall. See Falling Damage for more details.)
!! Special Situation: Diving or Jumping into Water
The rules presented here for diving or jumping into water are from a Pathfinder 3rd Party Publisher and are not part of the Pathfinder Roleplaying Game rules created by Paizo. Consult your GM to see if these rules are allowed or in use in his or her campaign.
Characters who jump or dive into water take no damage on a successful DC 15 Acrobatics skill check, so long as the water is at least 10 feet deep for every 30 feet fallen. Water 30 feet deep is sufficient for a dive from any height. However, the DC of the check increases by 5 for every 50 feet of the dive. Table: Diving summarizes these rules.
If the water is not deep enough for a safe dive, add 5 to the DC and treat your dive or fall as 30 feet higher than its actual height on the following table.
|!Dive Height | !Minimum Safe Depth | !Acrobatics DC | !Damage for Failed Dive |
|10 ft. | 10 ft. | 15 | None |
|20 ft. | 10 ft. | 15 | None |
|30 ft. | 10 ft. | 15 | 1d3 nonlethal |
|40 ft. | 20 ft. | 15 | 2d3 nonlethal |
|50 ft. | 20 ft. | 20 | 2d3 nonlethal +1d6 |
|60 ft. | 20 ft. | 20 | 2d3 nonlethal + 2d6 |
|70 ft. | 30 ft. | 20 | 2d3 nonlethal + 3d6 |
|80 ft. | 30 ft. | 20 | 2d3 nonlethal + 4d6 |
|90 ft. | 30 ft. | 20 | 2d3 nonlethal + 5d6 |
|100 ft. | 30 ft. | 20 | 2d3 nonlethal + 6d6 |
|110 ft. | 30 ft. | 25 | 2d3 nonlethal + 7d6 |
|120 ft. | 30 ft. | 25 | 2d3 nonlethal + 8d6 |
|160 ft. | 30 ft. | 30 | 2d3 nonlethal + 12d6 |
|210 ft. | 30 ft. | 35 | 2d3 nonlethal + 17d6 |
|240 ft. | 30 ft. | 35 | 2d3 nonlethal + 20d6* |
"""*Maximum falling damage."""
''Action'': None. An Acrobatics check is made as part of another action or as a reaction to a situation.
!!! Modifiers
''Skills'': If you have 3 or more ranks in Acrobatics, you gain a +3 dodge bonus to AC when fighting defensively instead of the usual +2, and a +6 dodge bonus to AC when taking the total defense action instead of the usual +4.
''Feats'': If you have the Acrobatic feat, you get a +2 bonus on all Acrobatics checks. If you have 10 or more ranks in Acrobatics, the bonus increases to +4.
!! [[Additional Domain]]
[General]
You get an additional domain of your chosen god.
"""
''Prerequisite''
Access to the Domain Class Feature
''Benefit''
Choose one of your divine classes that allows domains as a class feature. You may choose another Domain that is granted by your divine source. Since this domain is tied to one of your existing classes, it will not progress to higher level features unless that class would also be allowed to progress, such as taking a level in the class or a prestige class that complements the domain class feature.
Source: Homebrew
Taken: 1^^st^^ Flaw Feat
"""
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Affliction
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
necromancy
1 standard action V, S
Range: touch
Targets: evil creature touched
Duration: instantaneous
Saving Throw: Fortitude negates Spell Resistance: yes
"""
The subject contracts an affliction selected from the list below, which strikes immediately (no incubation period).
Afflictions deal damage only to evil creatures. Any evil creature takes damage equal to that listed plus its Charisma bonus. An evil elemental or evil undead takes an extra 1 point of damage, and an evil outsider or an evil cleric of an evil deity takes an extra 2 points. The DC listed is for the subsequent saves (use affliction's normal save DC for the initial saving throw).
Source: Book of Exalted Deeds
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Aggravate Affliction
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
necromancy
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: instantaneous
Saving Throw: see text Spell Resistance: yes
"""
All recurring afflictions (those with a frequency,including curses, diseases, and poison) possessed by the targeted creature immediately trigger, requiring an immediate saving throw (as described in the affliction) to avoid suffering their effects. A successful saving throw does not count toward ending the affliction, and this extra save does not change the timing of the next save against the affliction. Afflictions without a frequency are unaffected by this spell.
Source: AP 82
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Aggressive Thundercloud
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, M/DF (a piece of a tree struck by lightning)
Range: medium (100 ft. + 10 ft./level)
Effect: 5-ft.-diameter sphere
Duration: 1 round/level
Saving Throw: Reflex negates Spell Resistance: yes
"""
A crackling, spherical storm cloud flies in whichever direction you point and deals electricity damage to those it strikes. It has a fly speed of 20 feet with perfect maneuverability. If it enters a space that contains a creature, the storm stops moving for the round and deals 3d6 points of electricity damage to that creature, though a successful Reflex save negates that damage. It provides concealment (20% miss chance) to anything within it, and its flickering light illuminates the same area a candle would. The sphere moves as long as you actively direct it (as a move action for you); otherwise, it stays at rest and crackles with lightning. It can be moved by wind effects and counts as a Small creature for the purpose of determining how winds affect it. The sphere has no physical substance and cannot exert any force on corporeal creatures or objects. It disperses if it exceeds the spell's range.
Source: Advanced Class Guide
Aid (DC 20): The animal can use the aid another action to aid a specific ally in combat by attacking a specific foe the ally is fighting. You point to a particular creature that you wish the animal to aid, and you point to another that you want it to make an attack roll against, and it will comply if able. The normal creature type restrictions governing the attack trick still apply.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Air Breathing
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M/DF (flower or piece of grass)
Range: touch
Targets: living aquatic creatures touched
Duration: 2 hours/level; see text
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The transmuted creatures can breathe air freely. Divide the duration evenly among all the creatures you touch. The spell doesn't make creatures unable to breathe water.
Source: Monster Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Air Bubble
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation)
1 standard action S, M/DF (a small bladder filled with air)
Range: touch
Targets: one creature or one object no larger than a Large two-handed weapon
Duration: 1 minute/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
Air bubble creates a small pocket of breathable air that surrounds the touched creature's head or the touched object. The air bubble allows the creature touched to breathe underwater or in similar airless environments, or protects the object touched from water damage. A firearm within an air bubble can be loaded-assuming the black powder comes from a powder horn, a cartridge, or some other airtight protective device-and fired. When shooting such a firearm underwater, the shot still takes the standard -2 penalty on attack rolls for every 5 feet of water the bullet passes through, in addition to normal penalties due to range. If a firearm within the air bubble explodes, the explosion occurs normally.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Air Geyser
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature or object up to Large size
Duration: instantaneous
Saving Throw: Reflex partial (see text) Spell Resistance: yes
"""
You create a powerful blast of air capable of flinging an opponent upward. If the target fails its Reflex save, the force of the air deals 2d6 points of bludgeoning damage and hurls the target upward a number of feet equal to 5 x your caster level. If a solid object (such as a ceiling) is encountered, the target strikes the object in the same manner as it would during a normal fall. After this blast of air ceases, the target falls down (unless it was flying), taking falling damage as normal. A successful save means the target takes half damage from the air blast but is not moved by it.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Air Step
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a goose feather)
Range: personal
Targets: you
Duration: 1 minute/level
Saving Throw: Spell Resistance:
"""
This spell functions as air walk, except you can rise no higher than 1 foot off the ground, you cannot pass over liquid, and the air you walk on is less stable than solid ground. When walking on air, you ignore difficult terrain that is less than 1 foot high, you do not trigger effects based on weight (such as a pressure plate), and any creature trying to track you through areas you crossed with this spell takes a -10 penalty on its Perception or Survival check to do so. However, because of the instability of the air you walk on, your speed is reduced by 10 feet (to a minimum of 5 feet) and you take a -4 penalty on Acrobatics, Climb, and Ride checks. If you have 1 rank in Fly, your speed is not reduced when using this spell, and you can cross over liquid at half speed. If you have 5 ranks in Fly, you can cross liquid at full speed and do not take the penalties to your skill checks.
Source: Advanced Class Guide
<$list filter="[tag[Spell]tag[Divine]sort[title]]"/>
<$list filter="[tag[Spell]tag[Arcane]sort[title]]"/>
<$list filter="[tag[Spell]sort[title]]"/>
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Alleviate Addiction
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (healing)
1 standard action V, S, DF
Range: touch
Targets: creature touched
Duration: 1 hour/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
The subject ignores the effects of addictions. The subject can naturally recover from damage dealt by the drug if she is under the effects of this spell for the entire duration of her rest.
Source: Black Markets
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Alluring Spores
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation)
1 standard action V, S, M/DF (a clump of pollen)
Range: medium (100 ft. + 10 ft./level)
Area: 20-ft.-radius spread
Duration: 1 minute/level
Saving Throw: Fortitude negates Spell Resistance: yes
"""
This spell creates a burst of spores that weaken the mind. Creatures within the area must succeed at a Fortitude save or take a -1 penalty on saving throws against your enchantment spells or effects for the duration of this spell. This penalty increases to -2 for any creature that is (or could be) sexually attracted to you.
Source: Legacy Of The First World
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Alpha Instinct
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
enchantment (charm) [mind-affecting]
10 minutes V, S, M (a bit of musk from an alpha wolf or another socially dominant animal)
Range: personal
Targets: you
Duration: 1 hour/level (D)
Saving Throw: Spell Resistance:
"""
Animals perceive you as a social superior. The starting attitude of animals you interact with improves by one step, and you gain a +2 morale bonus on Handle Animal checks. Helpful animals provide simple assistance (such as using the aid another action on skill checks they understand) as long as the spell lasts, but they flee from attacks and do not support you in combat. At one point during the spell's duration, you can issue a nonverbal command to helpful animals within 60 feet to forage for you; the animal or animals immediately head out into the wilderness to do just that. After 1 hour, the animals return to the location where you issued the command to make you an offering of edible food sufficient for one meal for you and a number of others equal to your caster level.
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Alter Fortune
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
divination
1 immediate action V, XP
Range: close (25 ft. + 5 ft./2 level)
Targets: one creature
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
With a single utterance, you create a momentary distortion that engulfs and confounds your foe. You change the flow of chance, causing the subject to immediately reroll any die roll it just made. It must abide by the second roll.
XP Cost: 200 XP.
Source: Player's Handbook II
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Alter Summoned Monster
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (summoning)
1 standard action V, S
Range: close (25 ft. + 5 ft./ 2 levels)
Targets: one summoned creature
Duration: instantaneous
Saving Throw: Will negates Spell Resistance: yes
"""
You swap a creature summoned by a conjuration (summoning) spell for a creature you could summon with a summon monster or summon nature's ally spell. The new creature must be an option from a spell of the same level or lower as the spell that summoned the target. The new creature cannot be summoned into an environment that cannot support it. The target can attempt a Will saving throw to negate this effect, but if the target is under your control, it receives no saving throw. Alter summoned monster does not alter the duration of the spell that summoned the target, nor does it affect any additional creatures summoned by the same spell as the target. The new creature has the same conditions and amount of damage as the target creature, and remains affected by all curses, diseases, poisons, and penalties that affected the target, but no other spells or effects carry over. Alter summoned monster is a spell of the same alignment type or types as the creature for which you exchange the target. An eidolon can't be targeted by this spell.
Source: Monster Summoner's Handbook
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Alter Winds
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 minute V, S
Range: touch
Area: immobile 10-ft.-radius emanation
Duration: 1 hour/level
Saving Throw: Will negates Spell Resistance: yes
"""
You subtly enhance or diminish the effects of natural winds within the spell's area, which is an immobile emanation around a point touched by you as the spell is cast. Within the area, natural (but not magical) wind effects are either increased or decreased by one step in intensity (Core Rulebook 439). The maximum wind force you can affect with this spell is based on your caster level, as shown on the table below. Alter winds has no effect on magical wind effects.
|!Caster Level |!Wind Force |
|1st-3rd |Light |
|4th-9th |Moderate |
|10th-15th |Strong |
|16th or higher |Severe |
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Amplify Stench
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 10 minutes/level
Saving Throw: Spell Resistance:
"""
You amplify your natural stench special ability-its save DC increases by 2, and creatures that fail their saving throws against your stench become nauseated rather than sickened. If your stench ability normally causes a creature to become nauseated (such as with the foul stench ability), the radius of your stench doubles instead. This spell has no effect if you don't possess the stench special ability.
Source: Monster Codex
An anagakok was a special type of wizard unique to the Great Glacier who had been magically adapted to the cold.
!! Description
An anagakok was immediately recognizable, because the secret ceremony of his or her initiation magically and permanently changed his or her physiology—an anagakok had fur like an animal. An inch of soft, white fur covered the entire body of an anagakok. If the hair was shaved off, it would grow back in less than a day.
Unlike other Ulutiuns and because of their warm fur, anagakoks did not dress in thick, layered clothing. Instead, they tended to wear simple, loose tunics.
!!Abilities
Anagakoks had excellent, almost instinctive, survival skills and could locate food even in the worst conditions. They could also magically increase the fortune of themselves and their companions.
An anagakok's fur granted him or her protection from the cold; however, it meant that they overheated easily if in hot environments, and, outside the Great Glacier, they were viewed with suspicion, since they had such a strange appearance.
The anagakok tradition tended to favor the following spells: airy water, change self, charm monster, deeppockets, fabricate, feather fall, fly, gust of wind, haste, hold monster, invisibility circle, jump, levitate, light, magic missile, magic weapon, polymorph self, scare, sleep, strength, unseen servant, water breathing, and whispering wind.
!!Requirements
To become an anagakok, one had to be a human wizard who had lived at least 40 years and who was in particularly good health.
A prospective anagakok first had to find an older anagakok to be a mentor. The mentor would assign a difficult task—usually involving a survival skill. If the supplicant passed the test, the elder anagakok would agree to teach the trainee the secret lore of the anagakok. The training period lasted one month and included long lectures, at which point the apprentice and instructor waited for a particularly cold night, one with temperatures below −50 °F (−46 °C). On this night they would travel into the wilderness for the final test. The two would sit staring at each other, dressed only in light clothing, and would meditate the whole night, holding hands. If the apprentice could last the whole night (a period of at least ten hours) in deep concentration without freezing to death, the magical ceremony would change him or her into an anagakok, and fur would immediately begin to grow.
Only about half of prospective anagakoks survived this cold night.
!!Role
Roughly every Iulutiun village with at least 200 people would contain an anagakok. Anagakoks were rarer among the Angulutiuns and nonexistent among the Nakulutiuns.
Anagakoks were rarely leaders in their society, but their superb survival skills meant that they very often accompanied long hunting expeditions or ikiki.
!!Notable Members
* Dygah, the most powerful anagakok on the Glacier in 1359 DR and the leader of the tiny outlaw village of Eghagu
* Mafwik, an anagakok specializing in the creation of magical items
Rumors & Legends
Circa 1059 DR, an evil anagakok tried to animate the white dragon skeletons lying at the bottom of the Shakkak Pit in Nakvaligach. The dragon skeletons slaughtered him and still existed in the area some 300 years later.
!!! See Also
"""
Urit
Angakkuq
"""
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Anchored Step
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (a bit of oak root)
Range: personal
Targets: you
Duration: 10 minutes/level (D)
Saving Throw: Spell Resistance:
"""
Powerful tendrils grow out of the bottom of your feet or footwear, partially anchoring you to the ground and making it more difficult for others to move you against your will. These tendrils dig into any surface, but leave no trace of your passing. You gain a +10 bonus to your CMD against bull rush, overrun, pull, push, reposition, and trip combat maneuvers, as well as any other effect that would move you from your current position (such as being swallowed whole) or knock you prone. The tendrils slow your movement, however; your speed is reduced by 10 feet (to a minimum of 5 feet). This spell has no effect if you are moving without touching the ground (climbing, flying, swimming, and so on).
Source: Advanced Class Guide
An animal is a living, nonhuman creature, usually a vertebrate with no magical abilities and no innate capacity for language or culture. Animals usually have additional information on how they can serve as companions.
An animal has the following features (unless otherwise noted).
* d8 Hit Die.
* Base attack bonus equal to 3/4 total Hit Dice (medium progression).
* Good Fortitude and Reflex saves.
* Skill points equal to 2 + Int modifier (minimum 1) per Hit Die. The following are class skills for animals: [[Acrobatics]], [[Climb]], [[Fly]], [[Perception]], [[Stealth]], and [[Swim]].
Traits: An animal possesses the following traits (unless otherwise noted in a creature’s entry).
* Intelligence score of 1 or 2 (no creature with an Intelligence score of 3 or higher can be an animal).
* [[Low-Light Vision]].
* Alignment: Always neutral.
* Treasure: None.
* Proficient with its [[natural weapons|Natural Attacks]] only. A noncombative herbivore treats its natural weapons as secondary attacks. Such attacks are made with a –5 penalty on the creature’s attack rolls, and the animal receives only 1/2 its Strength modifier as a damage adjustment.
* Proficient with no armor unless trained for war. (See FAQs and [[Handle Animal]] Skill.)
* Animals breathe, eat, and sleep.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Animal Aspect
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation (polymorph)
1 standard action V, S, M/DF (a part of the animal)
Range: personal
Targets: you
Duration: 1 minute/level (D)
Saving Throw: none Spell Resistance: yes (harmless)
"""
You gain some of the beneficial qualities of an animal. Your base form is largely unchanged and your size is unaltered, but some of your body parts are altered. Armor or gear you are wearing adjusts to your new shape for the duration of the spell. When you cast animal aspect, choose one of the following animals to gain the associated benefits. You can only have one animal aspect or greater animal aspect spell active on you at a time. Frog: Your legs become elongated and muscular. You gain a +4 competence bonus on Acrobatics checks, and you always jump as if you had a running start. Gorilla: Your arms become long, flexible, and strong like those of a great ape. Your unarmed damage die type increases by one step, and you gain a +4 competence bonus on combat maneuver checks when making the grapple or reposition combat maneuver. Monkey: Your hands and arms become dexterous like those of a simian. You gain a +4 competence bonus on Climb checks, and you can throw objects as if you had the Throw Anything feat. Otter: Your hands and feet gain webbing, and your lungs gain capacity, allowing you to move through the water with ease. You gain a Swim speed equal to half your speed, and all the benefits of having a swim speed. Additionally, you can hold your breath for 4 rounds per point of Constitution before being forced to make Constitution checks to keep holding your breath. Raccoon: Your hands become extremely dexterous, and your feet become padded. You gain a +2 competence bonus on Disable Device, Sleight of Hand, and Stealth checks. Raptor: Your legs become built for running speed, like those of a deinonychus. You gain a enhancement bonus of +20 feet to your base speed. Tree Lizard: Your hands and feet gain climbing claws and climbing pads. You gain a climb speed equal to half your normal speed and all the benefits of having a natural climb speed.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Animal Messenger
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
enchantment (compulsion) [mind-affecting]
1 minute V, S, M (a morsel of food the animal likes)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one Tiny animal
Duration: 1 day/level
Saving Throw: none; see text Spell Resistance: yes
"""
You compel a Tiny animal to go to a spot you designate. The most common use for this spell is to get an animal to carry a message to your allies. The animal cannot be one tamed or trained by someone else, including such creatures as familiars and animal companions. Using some type of food desirable to the animal as a lure, you call the animal to you. It advances and awaits your bidding. You can mentally impress on the animal a certain place well known to you or an obvious landmark. The directions must be simple, because the animal depends on your knowledge and can't find a destination on its own. You can attach a small item or note to the messenger. The animal then goes to the designated location and waits there until the duration of the spell expires, whereupon it resumes its normal activities. During this period of waiting, the messenger allows others to approach it and remove any scroll or token it carries. The intended recipient gains no special ability to communicate with the animal or read any attached message (if it's written in a language he doesn't know, for example).
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Animal Purpose Training
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
enchantment (compulsion) [mind-affecting]
1 minute V, S, M (a swatch of black cloth)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one indifferent or friendly animal
Duration: 1 hour/level
Saving Throw: none Spell Resistance: yes
"""
You instill the target animal with a general purpose (see the Handle Animal skill), which can be any purpose except combat training-fighting, guarding, heavy labor, hunting, performance, or riding. This purpose supersedes the animal's previous trained purpose and any tricks it knows. When the spell ends, the animal reverts to its previous trained purpose and known tricks.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Animal Trance
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
enchantment (compulsion) [mind-affecting, sonic]
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: animals or magical beasts with Intelligence 1 or 2
Duration: concentration
Saving Throw: Will negates Spell Resistance: yes
"""
Your swaying motions and music (or singing, or chanting) compel animals and magical beasts to do nothing but watch you. Only a creature with an Intelligence score of 1 or 2 can be fascinated by this spell. Roll 2d6 to determine the total number of HD worth of creatures that you fascinate. The closest targets are selected first until no more targets within range can be affected.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ant Haul
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M/DF (a small pulley)
Range: touch
Targets: creature touched
Duration: 2 hours/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
The target's carrying capacity triples (see Table 7-4: Carrying Capacity on page 171 of the Core Rulebook). This does not affect the creature's actual Strength in any way, merely the amount of material it can carry while benefiting from this spell. It also has no effect on encumbrance due to armor. If the creature wears armor it still takes the normal penalties for doing so regardless of how much weight the spell allows it to carry.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ant Haul, Communal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M/DF (a small pulley)
Range: touch
Targets: creatures touched
Duration: 2 hours/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like ant haul (see page 202 of the Pathfinder RPG Advanced Player's Guide), except you may divide the duration in 2-hour intervals among the creatures touched.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Anthropomorphic Animal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation (polymorph)
1 standard action V, S, M (a humanoid thumb bone)
Range: touch
Targets: animal touched
Duration: 1 hour/level
Saving Throw: Fortitude negates Spell Resistance: yes
"""
You transform the touched animal into a bipedal hybrid of its original form with a humanoid form, similar to how a lycanthrope's hybrid form is a mix of a humanoid and animal form. The animal's size, type, and ability scores do not change. It loses its natural attacks except for bite (if it had one as an animal), all types of movement other than its land speed, and special attacks that rely on its natural attacks. One pair of its limbs is able to manipulate objects and weapons as well as human hands do; limbless animals like snakes temporarily grow a pair of arms. The creature's Intelligence increases to 3, and it gains the ability to speak one language you know. It is not considered proficient in any manufactured weapons. It can attack with unarmed strikes, dealing unarmed strike damage for a creature of its size (unless it has a bite attack, which is a natural attack). Anthropomorphic animal can be made permanent with a permanency spell cast by a caster of 11th level or higher at a cost of 7,500 gp.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ape Walk
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (an ape or monkey paw)
Range: touch
Targets: creature touched
Duration: 10 minutes/level
Saving Throw: Will negates (harmless) Spell Resistance: yes
"""
(harmless) The subject can climb as well as an ape or monkey, gaining a climb speed of 30 feet and a +8 racial bonus on Climb skill checks. The affected creature must have her hands free to climb in this manner. In addition, as long as she has 10 feet of space in which to make a running start, the subject can make a long jump of up to 10 feet without making an Acrobatics check (an Acrobatics check is still required to jump longer distances).
Source: Sargava
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Apport Animal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (teleportation)
1 standard action V
Range: touch
Targets: one touched animal of Tiny or smaller size
Duration: instantaneous or 1 hour/level
Saving Throw: Will negates Spell Resistance: yes
"""
This spell functions like apport object except the target is an animal. Only normal, nonmagical creatures of the animal type can be teleported.
Source: Occult Adventures
You can evaluate the monetary value of an object.
Common Uses
!! Appraise Value of Item
A DC 20 Appraise check determines the value of a common item. If you succeed by 5 or more, you also determine if the item has magic properties, although this success does not grant knowledge of the magic item’s abilities. If you fail the check by less than 5, you determine the price of that item to within 20% of its actual value. If you fail this check by 5 or more, the price is wildly inaccurate, subject to GM discretion. Particularly rare or exotic items might increase the DC of this check by 5 or more.
You can also use this check to determine the most valuable item visible in a treasure hoard. The DC of this check is generally 20 but can increase to as high as 30 for a particularly large hoard.
''Action'':
Appraising an item takes 1 standard action. Determining the most valuable object in a treasure hoard takes 1 full-round action.
''Retry?''
Additional attempts to Appraise an item reveal the same result.
!! Modifers
''Race''
Dwarves get a +2 bonus to determine on Appraise checks made to determine the price of non-magical goods that contain precious metals or gemstones.
''Familiar''
A spellcaster with a raven familiar gains a +3 bonus on Appraise checks.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Aquatic Cavalry
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (summoning)
1 round V, S, DF
Range: medium (100 ft. + 10 ft./level)
Effect: 1 hippocampus plus 1 hippocampus/3 caster levels
Duration: 1 hour/level (D)
Saving Throw: none Spell Resistance: no
"""
You summon a school of hippocampi (one plus one per 3 caster levels, to a maximum of six at 15th level; Pathfinder RPG Bestiary 2 155) to serve as combat-trained mounts. The hippocampi avoid combat if possible but defend themselves if attacked. If any hippocampus attacks, the remaining duration of the spell changes from 1 hour per level to 1 round per level (so if a full 4 hours remained, the hippocampi last for only 4 more rounds).
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Aquatic Trail
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
divination
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Area: circle centered on you, with a radius of 100 feet + 10 feet per level
Duration: 1 hour/level
Saving Throw: none Spell Resistance: no
"""
You use divination magic to enhance the underwater trails in the area around you, allowing you to track creatures through the water as if across soft ground as long as they passed through the area less than 1 week ago (this lets you notice trails that are much older than normal underwater trails). The spell's area moves with you, so you can follow the trail through the water over long distances. Other creatures can also follow the trail as long as they move with you. Because of the plethora of sea creatures in the higher zones, it's possible that the trail that most interests you will be covered by the trails of other aquatic creatures, making this spell even more useful than normal in the Abyssal and Abaddonian zones.
Source: Aquatic Adventures
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Aqueous Orb
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (creation) [water]
1 standard action V, S, M (a drop of water and a glass bead)
Range: medium (100 ft. + 10 ft./level)
Effect: 10-ft.-diameter sphere
Duration: 1 round/level
Saving Throw: Reflex negates Spell Resistance: no
"""
You create a rolling sphere of churning water that can engulf those it strikes. The aqueous orb can move up to 30 feet per round, rolling over barriers less than 10 feet tall. It automatically quenches any nonmagical fires and functions as dispel magic against magical fires as long as those fires are size Large or less. Any creature in the path of the aqueous orb takes 2d6 points of nonlethal damage. A successful Reflex save negates this damage, but a Large or smaller creature that fails its save must make a second save or be engulfed by the aqueous orb and carried along with it. Engulfed creatures are immersed in water and must hold their breath unless capable of breathing water. They gain cover against attacks from outside the aqueous orb but are considered entangled by its churning currents, takes 2d6 points of nonlethal damage at the beginning of their turn each round they remain trapped. Creatures within the orb may attempt a new Reflex save each round to escape into a random square adjacent to the aqueous orb. The orb may hold one Large creature, 4 Medium, or 16 Small or smaller creatures within it. The sphere moves as long as you actively direct it (a move action for you); otherwise, it merely stays at rest and churns in place. An aqueous orb stops if it moves outside the spell's range.
Source: APG
Armor restricts the complicated gestures required while casting any spell that has a somatic component. The armor and shield descriptions list the arcane spell failure chance for different armors and shields.
If a spell doesn’t have a somatic component, an arcane spellcaster can cast it with no arcane spell failure chance while wearing armor. Such spells can also be cast even if the caster’s hands are bound or he is grappling (although concentration checks still apply normally). The metamagic feat Still Spell allows a spellcaster to prepare or cast a spell without the somatic component at one spell level higher than normal. This also provides a way to cast a spell while wearing armor without risking arcane spell failure.
!! [[Arctic Endurance]]
!!! Arctic Druid Archetype Alternate Feature
At 3rd level, an arctic druid ignores the effects of a cold climate as if using endure elements. She is also immune to being dazzled.
This ability replaces trackless step.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Arctic Haze
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (creation) [cold]
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Effect: fog spreads in 30-ft. radius, 20-ft. high
Targets: one creature
Duration: 10 min./level
Saving Throw: Fortitude half Spell Resistance: no
"""
A bank of fog composed entirely of tiny, razor-sharp ice shards billows out from the targeted point. The fog obscures all sight, including darkvision, beyond 5 feet. A creature 5 feet away has concealment (20% miss chance). Creatures farther away have total concealment (50% miss chance, and the attacker can't use sight to locate the target). In addition, the sharp ice particles tear the skin of those moving through the area, causing 4 points of damage per round, half of which is cold damage. A strong wind (21+ mph) disperses the fog in 4 rounds; a severe wind (31+ mph) disperses the fog in 1 round. Dispersing the fog in this manner, however, causes damage to those within its area as the icy shards whip past. A strong wind causes 4 points of damage per round (half cold); a severe wind causes 8 points of damage (half cold).
Source: Frostburn
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ash Storm
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (creation) [fire]
1 standard action V, S, M/DF (a pinch of ash)
Range: long (400 ft. + 40 ft./level)
Area: cylinder (40-ft. radius, 20 ft. high)
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
Driving ash blocks all sight (even darkvision) within the spell's area of effect, and falling cinders cause the ground in the area to become difficult terrain.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Aspect of the Bear
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation (polymorph)
1 standard action V, S, DF
Range: personal
Targets: you
Duration: 1 minute/level
Saving Throw: Spell Resistance:
"""
You take on an aspect of a bear. You gain a +2 enhancement bonus to natural armor and a +2 enhancement bonus on CMB rolls. You can also perform bull rush, grapple, and overrun combat maneuvers without provoking attacks of opportunity.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Aspect of the Falcon
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation (polymorph)
1 standard action V, S, DF
Range: personal
Targets: you
Duration: 1 minute/level
Saving Throw: Spell Resistance:
"""
You take on an aspect of a falcon. Your eyes become wide and raptor-like, and you grow feathers on the sides of your head. You gain a +3 competence bonus on Perception checks, a +1 competence bonus on ranged attacks, and the critical multiplier for your bows and crossbows becomes 19-20/x3. This effect does not stack with any other effect that expands the threat range of a weapon, such as the Improved Critical feat or a keen weapon.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Aspect of the Nightingale
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation (polymorph)
1 standard action V, S, DF
Range: personal
Targets: you
Duration: 1 minute/level
Saving Throw: Spell Resistance:
"""
You take on an aspect of a nightingale. Your voice becomes clear and pleasant. You gain a +2 competence bonus on Perform (sing) checks and a +2 competence bonus on Diplomacy checks. Once per minute, if you are subject to a charm effect that allows a saving throw, you may roll twice and take the more favorable result.
Source: AP 50
Attack (DC 20) The animal attacks apparent enemies. You may point to a particular creature that you wish the animal to attack, and it will comply if able. Normally, an animal will attack only humanoids, monstrous humanoids, giants, or other animals. Teaching an animal to attack all creatures (including such unnatural creatures as undead and aberrations) counts as two tricks.
|!Weapon |!Attack|!Damage|!Critical|!Range|!Type|!Ammo|!Notes |
|[[Masterwork Longspear]] 1H | +<$calc><<baseAttackBonus>>+<<statModifier STR>>+1</$calc> |1d8<<statModifier STR>>| x3 ||P||[[Brace]], [[Reach]] |
|[[Masterwork Longspear]] 2H | +<$calc><<baseAttackBonus>>+<<statModifier STR>>+1</$calc> |1d8+<$calc>round(<<statModifier STR>>*1.5)</$calc>| x3 ||P||[[Brace]], [[Reach]] |
|[[Bone Knife]] Melee | +<$calc><<baseAttackBonus>>+<<statModifier STR>>+0</$calc> |1d4<<statModifier STR>>| 19-20/x2 ||P/S|||
|[[Bone Knife]] Thrown | +<$calc><<baseAttackBonus>>+<<statModifier DEX>>+0</$calc> |1d4<<statModifier STR>>| 19-20/x2 | 10 |P/S| 1 ||
|[[Icicle]] Ranged Touch | +<$calc><<baseAttackBonus>>+<<statModifier DEX>>+0</$calc> |1d6+1| x2 | 30 |Cold| 8 |[[Druid Domain|Cold Domain]] |
|[[Cold Ray|Elemental Ray]] Ranged Touch | +<$calc><<baseAttackBonus>>+<<statModifier DEX>>+0</$calc> |1d6+0| x2 | 30 |Cold| 7 |[[Sorcerer Bloodline|Elemental Bloodline]] |
{{Spell Attacks}}
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Attune Form
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (pebble or rock from home plane), DF
Range: touch
Targets: one creature/3 levels
Duration: 24 hours
Saving Throw: none Spell Resistance: no
"""
This spell allows you to attune the affected creatures to the plane you are currently on, negating the harmful effects of that plane. Affected creatures gain the protections described in the [[Avoid Planar Effects Spell]]. Arcane Material Component: A bit of stone or earth from your home plane.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Aura against Flame
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration
1 standard action V, S
Range: personal
Targets: you
Duration: 1 round/level
Saving Throw: Spell Resistance:
"""
You create an aura of blue mist that protects you against fire, absorbing the first 10 points of fire damage as a resist energy (fire) spell (PH 272). In addition to the resist energy (fire) effect, the spell can be used to snuff out fires. Any nonmagical flame that the aura contacts is immediately extinguished if the flame's maximum damage is 10 or fewer points per round. This means that torches, small fires, and hurled alchemist's fire are snuffed out and cause no damage if used against you or if you touch them. You can use a standard action to touch an existing magical fire (such as a flaming sphere or a wall of fire) and attempt to dispel it as if using a dispel magic spell against it (use the caster level of aura against flame for the caster level check). If you succeed, you take no damage from the touch and the magical fire and aura both vanish. If you fail, you take damage from the magical fire source normally (reduced by your aura against flame), and both spells remain. With a readied action, you can use the aura as a dispel magic effect to counterspell a magical fire attack against you. If successful, the spell is counterspelled and the aura disappears. If you fail the dispel check, or if the attack is not a fire attack, the aura remains.
Source: Spell Compendium
! Aurochs
|N Large animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +9|
|!Defense |
|''AC'' 13, touch 9, flat-footed 13 |
|''hp'' 22 (3d8+9) |
|''Fort'' +6, ''Ref'' +3, ''Will'' +1 |
|!Offense |
|''Speed'' 40 ft. |
|''Melee'' gore +7 (1d8+9) |
|''Space'' 10, ''Reach'' 5 |
|''Special Attacks'' Stampede, [[Trample]] (2d6+9, DC 17) |
|!Statistics |
|''Str'' 23, ''Dex'' 10, ''Con'' 17, ''Int'' 2, ''Wis'' 11, ''Cha'' 4 |
|''Base Attack'' +2, ''CMB'' +9 , ''CMD'' 19 (23 vs. [[Trip]]) |
|''Feats'' Endurance, Skill Focus (Perception) |
|''Skills'' Perception +9 |
|!Special Abilities |
|!''Stampede'' (Ex) |
|A stampede occurs if three or more creatures with stampede make a trample attack while remaining adjacent to each other. While stampeding, the creatures can trample foes of their size or smaller, and the trample’s save DC increases by +2. |
Aurochs (both singular and plural) are large herd animals similar to domesticated cattle.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Aversion
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
enchantment (compulsion) [mind-affecting]
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 1 day/level
Saving Throw: Will partial Spell Resistance: yes
"""
You plant a revulsion in the mind of the subject, causing her to avoid an object or location. You must choose a specific object or place. A location chosen in this way can be no larger than a cube measuring 50 feet on a side. The aversion is entirely in the target's mind, so the chosen object or location itself isn't subject to any magical effect. If the target fails her saving throw, she can't come within 60 feet of the chosen object or place. She makes every reasonable effort to avoid the object of the aversion, but will not put herself in danger in order to maintain the aversion. For example, if the object of the aversion is a bridge but a forest fire is closing in and will likely kill the target, she ignores the aversion and crosses the bridge to save herself. If the target must ignore the conditions of the aversion, she is nauseated until she is no longer violating the aversion. If the target succeeds at her saving throw, she is instead sickened while within 60 feet of the object or place, but isn't compelled to stay away from it.
Source: Occult Adventures
\define nextJournalEntry()
<$calc>{{$:/state/lastJournalEntry}}+1</$calc>
\end
\define nextJournalEntryName()
<$calc>{{$:/state/lastJournalEntry}}+1</$calc> Journal Entry
\end
Ulrik is a young [[Nakulutiun]] man with nut-brown skin, wide, flat facial features, tall and lanky at 5'10" and 165 lbs. with a scraggly beard and mustache going prematurely gray. His fingers and toes are coal black from frostbite.
He wears skins and hides with an obsession for the color white. His tools and weapons are made of bone, flint and wood. He has ritual scars, tattoos and fetishes about his person. He wears a leather cover, leaving his knees and right arm exposed with boots designed for cold climes.
<$wikify name="nextEntry" text=<<nextJournalEntry>> >
<$wikify name="nextEntryName" text=<<nextJournalEntryName>> >
<$button>
<$action-createtiddler $basetitle={{$:/state/lastJournalEntryName}} tags="Journal" text={{JournalTemplate}} />
<$action-setfield $tiddler={{$:/state/lastJournalEntryName}} timeline={{$:/state/lastJournalEntry}} />
<$action-setfield $tiddler="$:/state/lastJournalEntry" text=<<nextEntry>> />
<$action-setfield $tiddler="$:/state/lastJournalEntryName" text=<<nextEntryName>> />
Create a Journal
</$button>
</$wikify>
</$wikify>
<<tabs "[tag[Background]] [tag[Journal]sort[timeline]]" "" "$:/state/tab2" "tc-vertical">>
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Badger's Ferocity
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one weapon/3 levels
Duration: concentration
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
This functions like keen edge, except it affects multiple weapons and requires your concentration. You select the weapons to be affected, and can only affect one weapon per creature. If a creature's weapon exceeds the spell's range, the spell ends for that weapon.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Barkskin
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF
Range: touch
Targets: living creature touched
Duration: 10 min./level
Saving Throw: none Spell Resistance: yes (harmless)
"""
Barkskin toughens a creature's skin. The effect grants a +2 enhancement bonus to the creature's existing natural armor bonus. This enhancement bonus increases by 1 for every three caster levels above 3rd, to a maximum of +5 at 12th level. The enhancement bonus provided by barkskin stacks with the target's natural armor bonus, but not with other enhancement bonuses to natural armor. A creature without natural armor has an effective natural armor bonus of +0.
Source: PFRPG Core
! [[Base Statistics]]
!! Ulrik Björnson of the Three Eagles Cross Tribe
@@.borderless
| !<$calc>{{CharacterData##Druid}}+{{CharacterData##Sorcerer}}+{{CharacterData##Mystic Theurge}}</$calc> |!Level |<|
| {{CharacterData##Druid}} |Druid|Arctic Druid|
| {{CharacterData##Sorcerer}} |Sorcerer|Cold Elemental Bloodline|
| {{CharacterData##Mystic Theurge}} |Mystic Theurge|Prestige|
@@
[[XP|Leveling]]: {{CharacterData##XP}} out of {{CharacterData##Next Level}}
|!Race |[[Human]], [[Ulutiun]] |<|!Size |[[Medium|Size]] |!Homeland and Background |<|<|[[Great Glacier]], Icewalker (Druid)|<|<|<|<|
|!Age | 23 |!Hair |Graying (black with white) |<|!Eyes |Pale |!Gender |Male |!Height | 5'10" |!Weight | 165 |
|!Alignment |Neutral |!Diety |[[Ulutiu]] (LN) |!Languages |Ulutiun, Common, Druidic |<|<|<|<|<|<|<|
!!! Abilities
|!Ability|!Score|!Mod|!Misc|!Temp|! |!Bonus Spells per Day|<|<|<|<|<|<|<|<|
|~|~|~|~|~|~|!1^^st^^|!2^^nd^^|!3^^rd^^|!4^^th^^|!5^^th^^|!6^^th^^|!7^^th^^|!8^^th^^|!9^^th^^|
|!STR|15|<<statModifier STR>>||||Light Load: 0-66|<|<|Medium Load: 67-133|<|<|Heavy Load: 134-200|<|<|
|!DEX|13|<<statModifier DEX>>|||||||||||||
|!CON|15|<<statModifier CON>>|||||||||||||
|!INT|11|<<statModifier INT>>|||||||||||||
|!WIS|20|<<statModifier WIS>>|||| <<SPDModifier "WIS" "1">> | <<SPDModifier "WIS" "2">> | <<SPDModifier "WIS" "3">> | <<SPDModifier "WIS" "4">> | <<SPDModifier "WIS" "5">> |||||
|!CHA|18|<<statModifier CHA>>|||| <<SPDModifier "CHA" "1">> | <<SPDModifier "CHA" "2">> | <<SPDModifier "CHA" "3">> | <<SPDModifier "CHA" "4">> | <<SPDModifier "CHA" "5">> |||||
!!! Saves
{{Saving Throws}}
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Batrachian Surge
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 swift action V, S
Range: personal
Targets: you
Duration: 1 round + 1 round/3 levels (D)
Saving Throw: none Spell Resistance: yes (harmless)
"""
You tap into your latent amphibian strengths, unlocking a short-lived physical talent. Armor or gear you are wearing adjusts to your new shape for the duration of the spell. When you cast batrachian surge, choose one of the following features to gain its associated benefits. You can have only one batrachian surge spell active on you at a time. Gills: Your throat expands, and gill slits appear along your neck. You can breathe underwater. Leaping: Your legs elongate and become especially muscular. You are always treated as having a running start when attempting Acrobatics checks to jump, and you gain a competence bonus on Acrobatics checks to jump equal to your caster level. Swimming: You grow a large tadpole tail, and your other limbs shrink slightly. You gain a swim speed equal to your base land speed. Tongue: Your tongue extends to the length of your body. Increase your reach by 5 feet when delivering touch spells. This increased reach doesn't stack with any other spells or abilities that affect your reach.
Source: Blood Of The Beast
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Bear's Endurance
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M/DF (a few hairs, or a pinch of dung, from a bear)
Range: touch
Targets: creature touched
Duration: 1 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes
"""
The affected creature gains greater vitality and stamina. The spell grants the subject a +4 enhancement bonus to Constitution, which adds the usual benefits to hit points, Fortitude saves, Constitution checks, and so forth. Hit points gained by a temporary increase in Constitution score are not temporary hit points. They go away when the subject's Constitution drops back to normal. They are not lost first as temporary hit points are.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Beastspeak
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 standard action S, DF
Range: personal
Targets: you
Duration: 10 minutes/level
Saving Throw: Spell Resistance:
"""
When you're in the form of an animal (such as when you are using wild shape or are affected by a polymorph effect), you can speak normally, including when you cast spells with verbal components, and you sound like your normal self when you speak. You can cast this spell while in animal form, using animal-appropriate somatic components.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Binding Earth
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature or unattended object (see text)
Duration: 1 round/level
Saving Throw: Fortitude negates Spell Resistance: yes
"""
If the target of this spell fails its Fortitude save, areas of earth and stone floor act as a snapping quagmire that pulls the target down and damages it if it attempts to move through such terrain. If the target is a creature, it treats all areas of earth and stone it moves through as difficult terrain. Furthermore, for each 5 feet a creature moves through such areas, it takes 1d6 points of damage. Creatures with a burrow speed or the earth glide ability are unaffected by binding earth. If cast on an unattended object resting on an area of stone or earth, the stone or earth warps and wraps around it, pulling it firmly to the ground. A DC 15 Strength check is required to pull the object free from snapping earth or stone.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Binding Snow
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF, Frostfel
Range: medium (100 ft. + 10 ft./level)
Area: one 10-ft. square per level
Duration: 1 hour/level (D)
Saving Throw: Reflex negates Spell Resistance: yes
"""
This spell must be cast on a snow field. That snow field instantly freezes, impeding movement through the area. A creature caught within the area can move only at half its normal speed. By making a DC 20 Strength check or a DC 25 Escape Artist check, the creature can move at its normal speed for that round. A creature that succeeds on a Reflex save is not impeded.
Source: Frostburn
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Binding Winds
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Targets: one creature
Duration: concentration
Saving Throw: Reflex negates Spell Resistance: yes
"""
The subject can act normally, but it cannot move from its current location. The winds carry its voice away, so it can speak but cannot be heard, and it cannot hear anything but the roar of the winds. This spell distracts spellcasters, and so a Concentration check is required to successfully cast any spell (DC equal to this spell's DC + the level of the spell being cast).
Furthermore, no sonic or language dependent spells or effects can be cast into or out of the winds though spells cast by you upon yourself function normally). Ranged attacks made into or out of the winds take a —2 penalty. Binding winds holds flying creatures in midair.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Bite of the Wererat
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (a wolf's tooth)
Range: personal
Targets: you
Duration: 1 round/level
Saving Throw: Spell Resistance:
"""
You gain a +2 enhancement bonus to Strength, a +4 enhancement bonus to Dexterity, a +4 enhancement bonus to Constitution, and a +4 enhancement bonus to natural armor. You gain a bite attack that deals 1d6 points of damage (or 1d4 points if you are Small) + 1-1/2 times your Str modifier. You also gain the benefit of the Blind-Fight feat. If your base attack bonus is +6 or higher, you do not gain any additional attacks.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Bite the Hand
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
enchantment (compulsion)
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature summoned by a spell or spell-like ability
Duration: 1 round/level (D)
Saving Throw: Will negates Spell Resistance: yes
"""
With a short command and a wave of the hand, you compel the target creature to attack the being who summoned it, to the best of its ability. If the being who summoned it is not present, the creature acts normally according to its last task or instructions. This spell has no effect on called creatures, summoned creatures not brought forth by spells or spell-like abilities (such as a summoner's eidolon), or bonded creatures not explicitly summoned, such as a paladin's mount or wizard's familiar.
Source: Pathfinder Society Field Guide
Roguey type Skeleton that is super tough. DR
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Blade Snare
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
abjuration
1 standard action V, S
Range: personal
Targets: you
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
This spell creates an invisible magic field that does not stop weapons (whether manufactured or natural) from moving toward you, but impedes their motion when they are retracted. When you are hit with a melee attack, attempt a caster level check against your opponent's CMD. If your check succeeds, your opponent's attacking weapon or body part becomes caught in the field, as if magically affixed to your body. If your check fails, your opponent may retract its weapon. If your opponent's melee weapon becomes trapped in the field, the opponent may release the weapon and move away from you. If your opponent attacked with a part of its body (such as a fist, a horn, a tail, etc.) or it attacked with a weapon but refuses to release it, your opponent gains the grappled condition. Because you are not using any part of your body to maintain control over your opponent, you do not gain the grappled condition. Once an opponent's weapon is snared, you may attempt a new caster level check against that opponent's CMD on each of your subsequent turns to maintain the grapple. This is a standard action, during which you may make any of the usual grappling actions, but if you choose to pin the opponent, you gain the grappled condition as well. On your opponent's turn, it may try to retract its weapon or limb by attempting a combat maneuver check or Escape Artist check, the DC of which is equal to the spell's saving throw. While blade snare is active, you may make melee attacks and cast spells as normal, though you may not make ranged weapon attacks; the magic field thwarts such attacks. You may not snare more than one limb or weapon in the field at a time. If you already have an opponent's weapon or limb stuck in the field and you are hit by a second melee attack, you must choose which weapon or limb to snare. The other limb or weapon is unaffected by the spell.
Source: Inner Sea Gods
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Bleed For Your Master
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
enchantment (compulsion) [mind-affecting]
1 immediate action V, S
Range: touch
Targets: your animal companion, familiar, or fiendish servant
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
When you would be hit by an attack that requires an attack roll, or when you are within an area of effect that allows you to attempt a Reflex saving throw, with a single touch you compel the target to throw itself in front of the blow or shield you from the effect. If an attack roll triggered this spell's casting, the target takes the damage instead of you, even if the attack roll would not normally hit the target's Armor Class. If an area of effect that allows you to attempt a Reflex save triggered this spell's casting, the target instead grants you cover against the effect (+2 bonus on Reflex saves) if it is your size or smaller, or improved cover (+4 bonus on Reflex saves and improved evasion against the effect) if it is larger than you. The target automatically fails its Reflex save against the effect but can still benefit from improved evasion and similar mitigating effects. After taking damage, the target is shaken for 1 minute. If the target was already shaken, it becomes frightened instead.
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Blend
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
illusion (glamer)
1 standard action S
Range: personal
Targets: you
Duration: 10 minutes/level
Saving Throw: Spell Resistance:
"""
You draw upon your elven link to the wilderness to change the coloration of yourself and your equipment to match that of your surroundings. This grants you a +4 circumstance bonus on Stealth checks and allows you to make Stealth checks without cover or concealment, but only while you move no more than half your base speed or less. If you move more than half your base speed on your turn, you gain no benefit from this spell until the start of your next turn. If you make an attack, this spell ends (as invisibility).
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Blend With Surroundings
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
illusion (glamer)
1 round V, S, M/DF (a chess piece)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 10 minutes/level
Saving Throw: Fortitude negates (harmless) or Will disbelieves (if interacted with) Spell Resistance: yes (harmless)
"""
This spell changes the appearance of the affected creature so that it better blends in with its surroundings. As chosen by you, the affected creature takes on the appearance of a statue, furniture, a tree, a bush, a rock, or another object of similar size. As long as the target stays still, it gains a +20 bonus on Stealth checks, and it can use Stealth even if it is being observed. The target's armor blends in perfectly with the illusory shape, and the target's armor check penalty on Stealth checks is negated for the duration of the spell. If the target moves at all while this spell is in effect, the spell ends.
Source: Dirty Tactics Toolbox
This ability is similar to blindsense, but is far more discerning. Using nonvisual senses, such as sensitivity to vibrations, keen smell, acute hearing, or echolocation, a creature with blindsight maneuvers and fights as well as a sighted creature. Invisibility, darkness, and most kinds of concealment are irrelevant, though the creature must have line of effect to a creature or object to discern that creature or object. The ability’s range is specified in the creature’s descriptive text. The creature usually does not need to make Perception checks to notice creatures within range of its blindsight ability. Unless noted otherwise, blindsight is continuous, and the creature need do nothing to use it. Some forms of blindsight, however, must be triggered as a free action. If so, this is noted in the creature’s description. If a creature must trigger its blindsight ability, the creature gains the benefits of blindsight only during its turn.
Format: blindsight 60 ft.; Location: Senses.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Blood Scent
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Targets: one creature/2 levels, no two of which can be more than 30 ft. apart
Duration: 1 minute/level (D)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You greatly magnify the target's ability to smell the presence of blood. The target is considered to have the scent universal monster ability, but only for purposes of detecting and pinpointing injured creatures (below full hit points). Creatures below half their full hit points or suffering bleed damage are considered strong scents for this ability. Orcs and any creature under the effects of rage gain a +2 morale bonus on attack and damage rolls against creatures they can smell with this spell, or a +4 morale bonus if the target's blood counts as a strong scent.
Source: Advanced Race Guide
[[Bloodline Arcana]]: Whenever you cast a spell that deals energy damage, you can change the type of damage to match the type of your bloodline. This also changes the spell’s type to match the type of your bloodline.
The Bloodline Arcana powers apply to all of the spells cast by characters of that bloodline, not just those cast using the sorcerer’s spell slots.
You know how to tell a lie.
!! Check
Bluff is an opposed skill check against your opponent’s Sense Motive skill.
|!Circumstances | !Bluff Modifier |
|The target wants to believe you | +5 |
|The lie is believable | +0 |
|The lie is unlikely | –5 |
|The lie is far-fetched | –10 |
|The lie is impossible | –20 |
|The target is drunk or impaired | +5 |
|You possess convincing proof | up to +10 |
!! Common Uses
!!Convey Secret Message
You can use Bluff to pass hidden messages to another character without others understanding your true meaning. The DC of this check is 15 for simple messages and 20 for complex messages. If you are successful, the target automatically understands you, assuming you are speaking in a language that it understands. If your check fails by 5 or more, you deliver the wrong message. Other creatures that hear the message can decipher the message by succeeding at an opposed Sense Motive check against your Bluff result.
''Action'': Delivering a secret message generally takes twice as long as the message would otherwise take to relay.
''Retry?'' Yes. Secret messages can be relayed again if the first attempt fails.
!!Deceive or Lie
If you use Bluff to fool someone, with a successful check you convince your opponent that what you are saying is true. Bluff checks are modified depending upon the believability of the lie. The following modifiers are applied to the roll of the creature attempting to tell the lie. Note that some lies are so improbable that it is impossible to convince anyone that they are true (subject to GM discretion).
''Retry?'' If you fail to deceive someone, any further checks made to deceive them are made at a –10 penalty and may be impossible (GM discretion).
!! Feign Harmlessness
It’s often useful to attempt to convince your enemies you are no threat to them.
''Check'': You attempt to convince your target you are harmless through your actions and posture. If you are at least one size category smaller than your target and have taken no effective offensive actions that your target has seen, you gain a +5 circumstance bonus on this check. Even if you have proven yourself capable of dealing damage, an effort to present your previous success as a one-time fluke takes only a –10 penalty on the check.
''Action'': Taking steps to appear harmless requires a full-round action, though a GM may require more involved Bluff attempts to take longer.
''Retry?'' You can attempt to feign harmlessness to the same target again, but each previous failed check increases the DC to convince your target by 5. This increase resets after 1 hour has passed.
!!Feint in Combat
You can also use Bluff to feint in combat, causing your opponent to be denied his Dexterity bonus to his AC against your next attack. The DC of this check is equal to 10 + your opponent’s base attack bonus + your opponent’s Wisdom modifier. If your opponent is trained in Sense Motive, the DC is instead equal to 10 + your opponent’s Sense Motive bonus, if higher. For more information on feinting in combat, see Combat.
''Action'': Feinting in combat is a standard action.
''Retry?'' Yes. You can attempt to feint against someone again if you fail.
!! Perform Inconspicuous Action
You can avoid drawing attention to yourself when performing conspicuous actions such as picking up an object in a museum where handling the exhibits is frowned upon but not a matter of grave concern, or closely studying someone across a room at a party.
''Action'': You attempt the Bluff check as part of performing the action you wish to render inconspicuous. Normally, you must take twice as long as normal to perform the action in order to make it inconspicuous. A standard action becomes a full-round action completed just before the start of your next turn and a free, immediate, move, or swift action becomes a standard action.
''Check'': Your Bluff check is opposed by observers’ Sense Motive checks. You can’t attempt the check if your very presence is suspicious (which you could prevent by altering your appearance with the Disguise skill).
!!Suggest Course of Action
You can use Bluff and Diplomacy together to make a request of a creature, without it even realizing you have made the request.
''Check'': You can gradually coax a target into thinking a suggestion is entirely its own idea, making the creature more likely to act on the idea than if you had suggested it outright. You discuss topics subtly relevant to the request, asking leading questions and narrowing the scope of the conversation so that the target eventually decides to take a specific action you have led it to.
You first attempt a Bluff check to convince the target that your request was actually its idea. This is always treated as far-fetched circumstances, resulting in a –10 penalty on the check. If successful, you then attempt a Diplomacy check to make the request of the creature, treating its attitude toward you as indifferent for this single request (regardless of its actual attitude).
''Action'': Planting the notion and then coaxing a target into suggesting the notion himself each require at least 1 minute of continuous interaction. This can be difficult to arrange with a hostile or unfriendly creature.
!!Actions Used
''Convey Secret Message'': Delivering a secret message generally takes twice as long as the message would otherwise take to relay.
''Deceive or Lie'': Attempting to deceive someone takes at least 1 round, but can possibly take longer if the lie is elaborate (as determined by the GM on a case-by-case basis).
''Feign Harmlessness'': Attempting to appear harmless is at least a full-round action, possibly more.
''Feint in Combat'': Feinting in combat is a standard action.
''Suggest Course of Action'': at least 1 minute of continuous interaction.
!!Modifiers
''Familiar''
A spellcaster with a snake familiar gains a +3 bonus on Bluff checks.
''Feats''
If you have the Deceitful feat, you gain a +2 bonus on Bluff skill checks. If you have 10 or more ranks in Bluff, the bonus increases to +4.
! Boar
|N Medium animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +6|
|!Defense |
|''AC'' 14, touch 10, flat-footed 14 |
|''hp'' 18 (2d8+9) |
|''Fort'' +6, ''Ref'' +3, ''Will'' +1 |
|!Offense |
|''Speed'' 40 ft. |
|''Melee'' gore +4 melee (1d8+4) |
|''Special Attacks'' [[Ferocity]] |
|!Statistics |
|''Str'' 17, ''Dex'' 10, ''Con'' 17, ''Int'' 2, ''Wis'' 13, ''Cha'' 4 |
|''Base Attack'' +1, ''CMB'' +4 , ''CMD'' 14 (18 vs. [[Trip]]) |
|''Feats'' Toughness |
|''Skills'' Perception +6 |
|!Special Abilities |
Much more ill-tempered and dangerous than their domesticated kin, boars are omnivorous creatures common to temperate forests, although they are not unknown in tropical climes. Other variants exist as well, such as the particularly ugly warthogs that dwell in tropical plains and savannahs. Boars are often hunted for their flesh, which is considered delicious by most humanoids. Those who hunt boars often do so with a special spear fitted with a cross beam to prevent an impaled boar from pushing forward along the spear shaft to gore its tormentor.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Body of the Sun
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF
Range: 5 ft
Area: 5-ft.-radius emanation centered on you
Duration: 1 round/level
Saving Throw: Reflex half Spell Resistance: yes
"""
Fire extends 5 feet in all directions from your body, illuminating the area and dealing 1d4 points of fire damage per two caster levels (maximum 5d4). Adjacent creatures take fire damage each round on your turn.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Bone Fists
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
necromancy
1 standard action V, S, M (the knucklebone of a dire animal)
Range: close (25 ft. + 5 ft./2 levels)
Targets: 1 creature/level, no two of which can be more than 30 feet apart
Duration: 1 minute/level
Saving Throw: none (harmless) Spell Resistance: no
"""
The bones of your targets' joints grow thick and sharp, protruding painfully through the skin at the knuckles, elbows, shoulders, spine, and knees. The targets each gain a +1 bonus to natural armor and a +2 bonus on damage rolls with natural weapons, and they are treated as having armor spikes, with which they are proficient.
Source: Magic Tactics Toolbox
@@.borderless
|''Holy Symbol'' |<|<|<| [img width=600 [Holy Symbol of Ulutiu|Ulutiu.jpg]] |
| |<|<|<|~|
|The Holy Symbol of Ulutiu is a Necklace of blue and white ice crystals. |<|<|<|~|
| |<|<|<|~|
|A Bone Holy Symbol functions as a Wooden Holy Symbol and is made of animal canines arranged to look like clear crystals separated by blue beads fashioned or cut into shapes with corners to appear as blue crystals. |<|<|<|~|
| |<|<|<|~|
|!Holy Symbols |<|<|<|~|
|!Type | !Price | !Weight |!Ulutiu Material |~|
|Wooden | 1 gp | — |Bone |~|
|Iron | 5 gp | 1 lb. |Slate or Obsidian |~|
|Silver | 25 gp | 1 lb. |Plain Quartz |~|
|Gold | 100 gp | 1 lb. |Clear Quartz |~|
|Platinum | 500 gp | 1 lb. |Magical Ice |~|
| |<|<|<|~|
| |<|<|<|~|
| |<|<|<|~|
| |<|<|<|~|
| |<|<|<|~|
| |<|<|<|~|
| |<|<|<|~|
| |<|<|<|~|
| |<|<|<|~|
| |<|<|<|~|
A holy symbol focuses positive energy and is used by good clerics and paladins (or by neutral clerics who want to cast good spells or channel positive energy). Each religion has its own holy symbol. The material used to make the holy symbol has no effect on its powers, though a religion may place special significance on a particular material.
Unholy Symbols An unholy symbol is like a holy symbol except that it focuses negative energy and is used by evil clerics (or by neutral clerics who want to cast evil spells or channel negative energy).
A dagger has a blade that is about 1 foot in length.
|!Melee | !Cost |!Dmg (S) |!Dmg (M) | !Critical | !Range | !Weight | !Type |!Special |
|Dagger | 2 gp | 1d3 | 1d4 | 19-20/x2 | 10 ft. | 1 lb. | P or S | — |
''Thrown Weapons'': The wielder applies his Strength modifier to damage dealt by thrown weapons (except for splash weapons). It is possible to throw a weapon that isn’t designed to be thrown (that is, a melee weapon that doesn’t have a numeric entry in the Range column on Table: Weapons), and a character who does so takes a –4 penalty on the attack roll. Throwing a light or one-handed weapon is a standard action, while throwing a two-handed weapon is a full-round action. Regardless of the type of weapon, such an attack scores a threat only on a natural 20 and deals double damage on a critical hit. Such a weapon has a range increment of 10 feet.
''Benefit'': You get a +2 bonus on Sleight of Hand skill checks made to conceal a dagger on your body (see Using Skills).
!! [[Boon Companion]]
[General]
Your bond with your animal companion or familiar is unusually close.
"""
''Prerequisite''
Animal companion or Familiar class feature
''Benefit''
The abilities of your animal companion or familiar are calculated as though your class were 4 levels higher, to a maximum effective druid level equal to your character level. If you have more than one animal companion or familiar, choose one to receive this benefit. If you lose or dismiss an animal companion or familiar that has received this benefit, you may apply this feat to the replacement creature.
''Special'': You may select this feat more than once. The effects do not stack. Each time you take the feat, it applies to a different animal companion or familiar.
Source: Complete Adventurer (pg 111)
Taken: 2^^nd^^ Flaw Feat
"""
.borderless,
.borderless table,
.borderless td,
.borderless tr,
.borderless th,
.borderless tbody
{ border:0 !important; }
Brace: If you use a readied action to set a brace weapon against a charge, you deal double damage on a successful hit against a charging creature (see Combat).
Break Out (DC 20): On command, the animal attempts to break or gnaw through bars or bindings restricting it, its handler, or a person indicated by the handler. If the animal cannot break the restraints by itself, its attempts grant the restricted creature a +4 circumstance bonus on Escape Artist checks. Furthermore, the animal can take certain basic actions such as lifting a latch or bringing its master an unattended key. Weight and Strength restrictions still apply, and pickpocketing a key or picking any sort of lock is still far beyond the animal‘s ability.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Bristle
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, DF
Range: touch
Targets: one creature
Duration: 1 minute/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes
"""
You give a creature the ability to redirect a portion of its innate toughness away from its own defense and toward the amount of damage it deals with natural attacks. Each round, as a swift action at the start of its turn, the creature can choose to reduce some or all of its natural armor bonus to AC and gain an enhancement bonus on all damage rolls for natural attacks equal to that amount. The reduction to natural armor, and thus the enhancement bonus on damage rolls, cannot exceed 1 point per 3 caster levels, to a maximum penalty/bonus of -5/+5 at 15th level. A creature cannot reduce its natural armor bonus to less than 0 with this spell. All attacks directed against the creature use its adjusted AC until the start of its next turn, at which time it can choose to modify its AC again or keep it at its current level. Creatures make this decision without any need for conscious thought or reflection; even creatures with no Intelligence score can benefit from this spell, although they always opt for the maximum possible reduction and bonus, regardless of any tactical advantage they might lose.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Brittle Portal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Area: 5-ft.-radius spread
Duration: 1 round/level
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
This spell weakens the bonds of existence, and reduces the hardness of any nonmagical surface within its area of effect by 2 per caster level. The spell is centered on a flat surface chosen by the caster, and the hardness reduction effect persists for the duration of the spell.
Source: Inner Sea Gods
Build Simple Structure (DC 25): The companion can build simple structures on command, limited by its natural abilities and inclinations. The companion is able to build only structures that creatures of its type would naturally build on their own, and this trick merely allows the handler to direct the companion on when and where to build such structures. For example, a spider could be commanded to spin a web between two trees, but it could not be made to create a hammock or a tent out of silk. Similarly, a beaver could be ordered to make a dam or lodge, an alligator a dome-shaped nest, and any burrowing creature a small tunnel or hole. In general, this process takes 10 minutes for each 5-foot square the structure occupies, but depending on the terrain and the type of structure, it might take as little as 1 minute or as much as 1 hour or more, at the GM’s discretion. Only companions that naturally build structures can learn this trick.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Bull's Strength
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M/DF (a few hairs, or a pinch of dung, from a bull)
Range: touch
Targets: creature touched
Duration: 1 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The subject becomes stronger. The spell grants a +4 enhancement bonus to Strength, adding the usual benefits to melee attack rolls, melee damage rolls, and other uses of the Strength modifier.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Burdened Thoughts
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
enchantment (compulsion) [mind-affecting]
1 standard action V, S, M (a lead bearing wrapped in clay)
Range: medium (100 ft. + 10 ft./level)
Targets: one creature
Duration: 1 round/level
Saving Throw: Will negates Spell Resistance: yes
"""
You fill a creature's mind with the realization of its earthly weight and responsibilities. Disheartened and wearied by these thoughts, the creature gains heavy encumbrance and is unable to fly (if already flying, it must land as soon as possible). If the creature is three or more size categories larger than you, it's also staggered.
Source: Giant Hunters Handbook
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Burning Disarm
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: Short (25 ft. + 5 ft./2 levels)
Targets: Held metal item of one creature or 15 lbs. of unattended metal
Duration: Instantaneous
Saving Throw: Reflex negates (object, see text) Spell Resistance: Yes (object)
"""
This spell causes a metal object to instantly become red hot. A creature holding the item may attempt a Reflex save to drop it and take no damage (even if it is not their turn), otherwise the hot metal deals 1d4 points of fire damage per caster level (maximum 5d4). Circumstances that prevent the creature from dropping the item (such as a locked gauntlet) mean the creature gets no saving throw. The heat does not harm the item, and it does not get hot enough or last long enough to ignite flammable objects. The item cools to its previous temperature almost instantly. If cast underwater, burning disarm deals half damage and boils the surrounding water.
Source: Cheliax Empire Of Devils
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Burning Entanglement
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S, DF
Range: long (400 ft. + 40 ft./level)
Area: 40-ft.-radius spread
Duration: 1 round/level
Saving Throw: Reflex negates or partial (see text) Spell Resistance: no
"""
This spell functions as per entangle, except it sets the foliage on fire. A creature that begins its turn entangled by the spell takes 4d6 points of fire damage (Reflex half), and a creature that begins its turn in the area but is not entangled takes 2d6 points of fire damage (Reflex negates). Smoke rising from the vines partially obscures visibility. Creatures can see things in the smoke within 5 feet clearly, but attacks against anything farther away in the smoke must contend with concealment (20% miss chance). When the spell's duration expires, the vines burn away entirely.
Source: Villain Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Burning Gaze
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, M/DF (eye of a mundane salamander)
Range: personal
Targets: you
Duration: 1 round/level
Saving Throw: Fortitude negates (see text) Spell Resistance: yes
"""
Your eyes burn like hot coals, allowing you to set objects or foes alight with a glance. As a standard action as long as this spell's effects persist, you may direct your burning gaze against a single creature or object within 30 feet of your location. Targeted creatures must succeed at a Fortitude save or take 1d6 points of fire damage. Unattended objects do not get a save. Creatures damaged by the spell must make a Reflex save or catch fire. Each round, burning creatures may attempt a Reflex save to quench the flames; failure results in another 1d6 points of fire damage. Flammable items worn by a creature must also save or take the same damage as the creature. If a creature or object is already on fire, it suffers no additional effects from burning gaze. Note that this spell does not grant an actual gaze attack- foes and allies are not in danger of catching on fire simply by meeting your gaze.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Burning Sands
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation) [earth, fire]
1 standard action V, S, M (a handful of sand)/DF
Range: medium (100 ft. + 10 ft./level)
Area: 20-ft. radius
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
You cause sheets of hot sand to spread over the ground in the area of effect. This layer of sand is 1 foot deep and constantly shifts and churns, transforming the ground in the area into difficult terrain. The sand itself burns, and periodic flames rise from the grit. While these flames cannot ignite objects, they deal 1d4 points of fire damage to any creature that ends its turn in contact with the ground within the area of effect. At the end of the duration, the sand vanishes, leaving no aftereffects (other than damage dealt).
Source: Adventurer's Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Burrow
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: touch
Targets: creature touched
Duration: 1 minute/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The subject can burrow at a speed of 15 feet (or 10 feet if it wears medium or heavy armor, or if it carries a medium or heavy load) through sand, loose soil, or gravel, or at a speed of 5 feet through stone. Using burrow requires only as much concentration as walking, so the subject can attack or cast spells normally. The burrowing creature cannot charge or run. Loose material collapses behind the target 1 round after it leaves the area. This spell does not give the target the ability to breathe underground, so when passing through loose material, the creature must hold its breath and take only short trips, or else it may suffocate.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Burst of Nettles
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Area: 10-ft.-radius burst
Duration: instantaneous
Saving Throw: Reflex half Spell Resistance: yes
"""
You release a burst of barbed, acid-filled nettles. Creatures caught in the burst take 3d6 points of damage plus 1d6 points of acid damage on the next round. Those that save take half damage from the initial burst and no damage on the next round.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Burst Of Radiance
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, M/DF (a piece of flint and a pinch of silver dust)
Range: long (400 ft. + 40 ft./level)
Area: 10-ft.-radius burst
Duration: instantaneous
Saving Throw: Reflex partial Spell Resistance: yes
"""
This spell fills the area with a brilliant flash of shimmering light. Creatures in the area are blinded for 1d4 rounds, or dazzled for 1d4 rounds if they succeed at a Reflex save. Evil creatures in the area of the burst take 1d4 points of damage per caster level (max 5d4), whether they succeed at the Reflex save or not.
Source: Champions Of Purity
Bury (DC 15): an animal with this trick can be instructed to bury an object in its possession. The animal normally seeks a secluded place to bury its object. an animal that knows both the bury and fetch tricks can be instructed to fetch an item it has buried.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Calistria's Guardian Wasps
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (summoning)
10 minutes; see text V, S, M (a glob of spiced honey)
Range: close (25 ft. + 5 ft./2 levels)
Effect: swarm of wasps that builds a nest; see text
Duration: 1 day/level
Saving Throw: none Spell Resistance: no
"""
You summon a wasp swarm (Pathfinder RPG Bestiary 275) that builds a 10-foot-by-10-foot nest in the place you designate-typically under the eaves of a house, amid the rafters of a tavern, or in another obscured place. The wasp swarm takes the spell's casting time to build its nest; if the swarm is disrupted in any way (such as by being attacked) before you finish casting this spell, the wasps disappear and the spell fizzles. Once the wasp swarm has built its nest, this spell also wards the area. As per alarm, when intruders that do not speak the password pass within 20 feet, the swarm is alerted and immediately leaves its nest and attacks the nearest intruder. The swarm pursues that intruder as best it can. Once the swarm attacks an intruder, you have no control over its target or direction of travel. When the spell ends, if the wasps have not left their nest, they and their nest disappear.
Source: Inner Sea Intrigue
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Call Animal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
enchantment (compulsion) [mind-affecting]
1 standard action V, S, DF
Range: see description
Effect: one animal whose CR is equal or less than your caster level
Duration: 1 hour/level (D)
Saving Throw: none Spell Resistance: none
"""
This spell calls the nearest wild animal of a particular type you designate (provided the animal's CR is equal to or less than your caster level) to seek you out. The animal moves toward you under its own power, so the time it takes to arrivedepends on how close an animal of the desired type is when you cast the spell. If there is no animal of that type capable of reaching you within the spell's duration, you are aware of this fact, but the spell is wasted. Knowledge of the local fauna makes this spell more effective, and the GM may permit a Knowledge (nature) skill check (DC 15) to know what animals can be found in an area. When the called animal arrives, it approaches to within 5 feet of you and remains nearby for the duration of the spell. Its starting attitude is indifferent, modified by circumstances and interaction. Other than starting attitude, this spell gives you no special influence or ability to communicate with the called animal, although you may use other spells or abilities to do so. Once the spell's duration expires, the animal acts in accordance with its attitude. Most animals will likely wander off, but a hostile predatory animal may attack, especially if it is hungry or provoked. Domesticated animals or animals trained by someone else, including such creatures as familiars or animal companions, are unaffected by call animals.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Call Lightning
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 round V, S
Range: medium (100 ft. + 10 ft./level)
Effect: one or more 30-ft.-long vertical lines of lightning
Duration: 1 min./level
Saving Throw: Reflex half Spell Resistance: yes
"""
Immediately upon completion of the spell, and once per round thereafter, you may call down a 5-foot-wide, 30-foot-long, vertical bolt of lightning that deals 3d6 points of electricity damage. The bolt of lightning flashes down in a vertical stroke at whatever target point you choose within the spell's range (measured from your position at the time). Any creature in the target square or in the path of the bolt is affected. You need not call a bolt of lightning immediately; other actions, even spellcasting, can be performed first. Each round after the first you may use a standard action (concentrating on the spell) to call a bolt. You may call a total number of bolts equal to your caster level (maximum 10 bolts). If you are outdoors and in a stormy area-a rain shower, clouds and wind, hot and cloudy conditions, or even a tornado (including a whirlwind formed by a djinni or an air elemental of at least Large size)-each bolt deals 3d10 points of electricity damage instead of 3d6. This spell functions indoors or underground but not underwater.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Calm Animals
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
enchantment (compulsion) [mind-affecting, emotion]
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: animals within 30 ft. of each other
Duration: 1 min./level
Saving Throw: Will negates Spell Resistance: yes
"""
This spell soothes and quiets animals, rendering them docile and harmless. Only ordinary animals (those with Intelligence scores of 1 or 2) can be affected by this spell. All the subjects must be of the same kind, and no two may be more than 30 feet apart. The maximum number of HD of animals you can affect is equal to 2d4 + caster level. The affected creatures remain where they are and do not attack or flee. They are not helpless and defend themselves normally if attacked. Any threat breaks the spell on the threatened creatures.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Camoflage
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 10 min./level
Saving Throw: Spell Resistance:
"""
Throughout the duration of the spell, your coloration changes instantly to match the background of any new environment you enter, with no effort on your part. This effect grants you a +10 circumstance bonus on Stealth checks to keep from being seen.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Campfire Wall
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, M/DF (ash made from burnt thorns)
Range: close (25 ft. + 5 ft./2 levels)
Effect: 20-ft.-radius sphere centered on fire source
Duration: 2 hours/level; see below (D)
Saving Throw: none Spell Resistance: yes
"""
You can create a barrier around a fire of at least campfire size that shelters everyone inside so long as the fire continues to burn. The barrier appears as a crackling sphere of light and fire that is clearly visible, providing as much illumination as a torch. The barrier bocks line of sight, granting creatures on either side of the barrier total concealment from creatures on the other side. Any object or creature passing through the barrier from outside takes 1d6 points of fire damage and is also outlined with light equivalent to that of a torch, for 1d6 minutes. Creatures outlined in this way are plainly visible regardless of the light conditions and do not benefit from any sort of concealment, magical or otherwise. The light is not bright enough to have any special effect on undead or creatures vulnerable to light. Creatures inside the barrier can leave without penalty, but if they try to return they suffer the same consequences as anyone else. If the fire source at the barrier's center is extinguished or moved, the spell ends.
Source: APG
.image2 {
position: absolute;
top: 20px;
left: 20px;
}
.parent {
position: relative;
top: 0;
left: 0;
}
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Carry Companion
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a pinch of sand or limestone dust)
Range: touch
Targets: one willing creature touched
Duration: permanent; see text
Saving Throw: none Spell Resistance: yes (harmless)
"""
You touch an animal or magical beast that has a helpful attitude toward you, instantly transforming the creature into a miniature figurine of stone, small enough to fit into the palm of your hand. Creatures with an attitude of less than helpful will not tolerate this spell, and it automatically fails to work on them. An intelligent animal or magical beast must be a willing subject in order for this spell to take effect. Any items that the creature wears (such as a harness or saddle) or carries (such as those stowed in saddlebags) are transformed along with the creature. While miniaturized, the creature is under an effect similar to that of a flesh to stone spell: It is mindless and inert, and does not seem alive when viewed with spells like deathwatch. However, you may return the creature to its normal form at any time simply by placing the figurine on the ground, touching it, and uttering a word of command. Otherwise, the creature remains in miniature form unless the spell is broken, such as by dispel magic or stronger magic. Unlike a flesh to stone spell, a creature affected by carry companion is unaffected by stone to flesh. If the miniature figurine is broken or damaged, the creature (if returned to its original state) has similar damage or deformities.
Source: Knights Of The Inner Sea
<$button><$action-setfield $tiddler="Snowball Spell" cast=1 />Cast Spell</$button>
<$button><$action-setfield $tiddler="Snowball Spell" cast=0 />Reload Spell</$button>
.castspellcard0,
.castspellcard0 table {
border-style: solid;
border-color: #000;
border-width: 5px;
height: 360px;
width: 240px;
background-color: white;
}
.castspellcard0 table tr:last-child,
.castspellcard0 td:first-child {
border-bottom-left-radius: 10px;
}
.castspellcard0 table tr:last-child,
.castspellcard0 td:last-child {
border-bottom-right-radius: 10px;
}
.castspellcard0 tr,
.castspellcard0 td {
border:0 !important;
}
.castspellcard1,
.castspellcard1 table {
border-style: solid;
border-color: #000;
border-width: 5px;
height: 360px;
width: 240px;
background-color: white;
}
.castspellcard1 table tr:last-child,
.castspellcard1 td:first-child {
border-bottom-left-radius: 10px;
}
.castspellcard1 table tr:last-child,
.castspellcard1 td:last-child {
border-bottom-right-radius: 10px;
}
.castspellcard1 tr,
.castspellcard1 td {
border:0 !important;
}
.castspellcard2,
.castspellcard2 table {
border-style: solid;
border-color: #000;
border-width: 5px;
height: 360px;
width: 240px;
background-color: white;
}
.castspellcard2 table tr:last-child,
.castspellcard2 td:first-child {
border-bottom-left-radius: 10px;
}
.castspellcard2 table tr:last-child,
.castspellcard2 td:last-child {
border-bottom-right-radius: 10px;
}
.castspellcard2 tr,
.castspellcard2 td {
border:0 !important;
}
.castspellcard3,
.castspellcard3 table {
border-style: solid;
border-color: #000;
border-width: 5px;
height: 360px;
width: 240px;
background-color: white;
}
.castspellcard3 table tr:last-child,
.castspellcard3 td:first-child {
border-bottom-left-radius: 10px;
}
.castspellcard3 table tr:last-child,
.castspellcard3 td:last-child {
border-bottom-right-radius: 10px;
}
.castspellcard3 tr,
.castspellcard3 td {
border:0 !important;
}
.castspellcardD,
.castspellcardD table {
border-style: solid;
border-color: #000;
border-width: 5px;
height: 360px;
width: 240px;
background-color: white;
}
.castspellcardD table tr:last-child,
.castspellcardD td:first-child {
border-bottom-left-radius: 10px;
}
.castspellcardD table tr:last-child,
.castspellcardD td:last-child {
border-bottom-right-radius: 10px;
}
.castspellcardD tr,
.castspellcardD td {
border:0 !important;
}
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Cat's Grace
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (pinch of cat fur)
Range: touch
Targets: creature touched
Duration: 1 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes
"""
The transmuted creature becomes more graceful, agile, and coordinated. The spell grants a +4 enhancement bonus to Dexterity, adding the usual benefits to AC, Reflex saves, and other uses of the Dexterity modifier.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Certain Grip
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M/DF (a tiny ball of tar)
Range: touch
Targets: creature touched
Duration: 10 minutes/level (D)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The subject's grip and footing become sure, granting a +4 competence bonus on Climb checks, on Acrobatics checks to balance, and to CMD against bull rush, drag, reposition, and trip attempts. While affected by this spell, the target is also immune to the disarm combat maneuver.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Channel The Gift
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S, DF
Range: touch
Targets: ally spellcaster touched
Duration: 1 round or see text
Saving Throw: Will negates (harmless) or none Spell Resistance: yes (harmless) or no
"""
You channel your magical power to fuel the target's spellcasting. The next spell the target casts of 3rd level or lower does not expend a spell slot; in effect, you are using your spell slot to power the target's spell. The target must start casting this spell before your next turn, and the spell cannot have a casting time longer than 1 full round. Your alignment, prohibited wizard school, and other restrictions on your own spellcasting do not affect the target, nor do you suffer any backlash from the target's choice of spell. If you target yourself with this spell, you may spontaneously cast any prepared spell of 3rd level or lower without expending its spell slot on your next turn (this aspect of the spell has no effect if you are a spontaneous caster). The spell that's cast after channel the gift cannot have a casting time longer than 1 full round.
Source: Inner Sea Gods
{
"Levels": "[\"Druid\",\"Sorcerer\",\"Mystic Theurge\"]",
"Druid": "3",
"Sorcerer": "1",
"Mystic Theurge": "2",
"AH": 0,
"STR": 15,
"DEX": 13,
"CON": 15,
"INT": 11,
"WIS": 20,
"CHA": 18,
"HP": 50,
"CurrentHP": "49",
"XP": 24527,
"Next Level": 35000
}
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Charge of the Triceratops
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: touch
Targets: living creature touched
Duration: 1 round /level (D)
Saving Throw: Will negate (harmless) Spell Resistance: yes (harmless)
"""
The horns created by this spell grant a natural gore attack that deals 1d8 points of damage (1d6 points of damage if the subject creature is Small, 2d6 if Large). If the gore attack is used as part of a charge, it deals double damage. If the gore attack is used as a primary weapon, the subject adds 1-1/2 times its Strength bonus to the damage of the attack. If it is used as a secondary weapon, the subject adds only 1/2 its Strength bonus to the damage roll, and takes a —5 penalty on the attack roll. The recipient also gains a +4 enhancement bonus to its natural armor.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Charm Animal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
enchantment (charm) [mind-affecting]
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one animal
Duration: 1 hour/level
Saving Throw: Will negates Spell Resistance: yes
"""
This spell functions like charm person, except that it affects a creature of the animal type.
Source: PFRPG Core
! Cheetah
|N Medium animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +5|
|!Defense |
|''AC'' 15, touch 14, flat-footed 11 |
|''hp'' 19 (3d8+6) |
|''Fort'' +5, ''Ref'' +7, ''Will'' +2 |
|!Offense |
|''Speed'' 50 ft. |
|''Melee'' bite +6 (1d6+3 plus trip), 2 claws +6 (1d3+3) |
|!Statistics |
|''Str'' 17, ''Dex'' 19, ''Con'' 15, ''Int'' 2, ''Wis'' 12, ''Cha'' 6 |
|''Base Attack'' +2, ''CMB'' +6 , ''CMD'' 19 (23 vs. [[Trip]]) |
|''Feats'' Improved Initiative, Weapon Finesse |
|''Skills'' Acrobatics +8, Perception +5, Stealth +8 (+12 in tall grass) |
|''Racial Modifiers'' +4 Stealth in tall grass |
|!Special Abilities |
|!''Sprint'' (Ex) |
|Once per hour, a cheetah can move at 10 times its normal speed (500 feet) when it makes a charge. |
The cheetah is a swift and deadly predator capable of moving with incredible speed, allowing it to run down unsuspecting foes hundreds of feet away. The hunting cat avoids areas of dense and tangled undergrowth, but has great skill at lying in wait in tall grass.
An adult cheetah is 4-1/2 feet long and weighs 140 pounds.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Cheetah's Sprint
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 swift action V
Range: personal
Targets: you
Duration: 1 round
Saving Throw: Spell Resistance:
"""
A wild surge of energy courses through your body and propels you into a sprint. If you take a charge or run action before the end of your turn, you can move a total distance of up to 10 times your base land speed. This adjustment is an enhancement bonus. There is no effect on other modes of movement, such as burrow, climb, fly, or swim. As with other effects that increase your speed, this spell affects your jumping distance.
Source: Heroes Of The Wild
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Chill Metal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Targets: metal equipment of one creature per two levels, no two of which can be more than 30 ft. apart; or 25 lbs. of metal/level, none of which can be more than 30 ft. away from any of the rest
Duration: 7 rounds
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
Chill metal makes metal extremely cold. Unattended, nonmagical metal gets no saving throw. Magical metal is allowed a saving throw against the spell. An item in a creature's possession uses the creature's saving throw bonus unless its own is higher. A creature takes cold damage if its equipment is chilled. It takes full damage if its armor, shield, or weapon is affected. The creature takes minimum damage (1 point or 2 points; see the table) if it's not wearing or wielding such an item. On the first round of the spell, the metal becomes chilly and uncomfortable to touch but deals no damage. The same effect also occurs on the last round of the spell's duration. During the second (and also the next-to-last) round, icy coldness causes pain and damage. In the third, fourth, and fifth rounds, the metal is freezing cold, and causes more damage, as shown on the table below.
|!Round |!Metal Temperature |!Damage |
|1| Cold | None |
|2| Icy | 1d4 points |
|3-5| Freezing | 2d4 points |
|6| Icy | 1d4 points |
|7| Cold | None |
Any heat intense enough to damage the creature negates cold damage from the spell (and vice versa) on a point-for-point basis. Underwater, chill metal deals no damage, but ice immediately forms around the affected metal, making it float if unattended. Chill metal counters and dispels heat metal.
Source: PFRPG Core
!! Total
Class skills are Appraise (Int), Bluff (Cha), Climb (Str), Craft (Int), Fly (Dex), Handle Animal (Cha), Heal (Wis), Intimidate (Cha), Knowledge (arcana) (Int), Knowledge (geography) (Int), Knowledge (nature) (Int), Knowledge (planes) (Int), Perception (Wis), Profession (Wis), Ride (Dex), Spellcraft (Int), Survival (Wis), Swim (Str), and Use Magic Device (Cha).
!! Druid
The druid’s class skills are Acrobatics (Dex, Climb (Str), Craft (Int), Fly (Dex), Handle Animal (Cha), Heal (Wis), Knowledge (geography) (Int), Knowledge (nature) (Int), Perception (Wis), Profession (Wis), Ride (Dex), Spellcraft (Int), and Survival (Wis).
Glacial Druids replace Swim with Acrobatics.
!! Sorcerer
The sorcerer’s class skills are Appraise (Int), Bluff (Cha), Craft (Int), Fly (Dex), Intimidate (Cha), Knowledge (arcana) (Int), Profession (Wis), Spellcraft (Int), and Use Magic Device (Cha).
!! [[Elemental Bloodline]]
Knowledge (planes) (Int)
{
"Druid": {
"BAB": 0.75,
"Fort": 0.5,
"Ref": 0.33333333334,
"Will": 0.5,
"Skills": 6,
"KnowSkills": 2,
"SPD": {
"1": { "0": 3, "1": 1, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"2": { "0": 4, "1": 2, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"3": { "0": 4, "1": 2, "2": 1, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"4": { "0": 4, "1": 3, "2": 2, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"5": { "0": 4, "1": 3, "2": 2, "3": 1, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"6": { "0": 4, "1": 3, "2": 3, "3": 2, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"7": { "0": 4, "1": 4, "2": 3, "3": 2, "4": 1, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"8": { "0": 4, "1": 4, "2": 3, "3": 3, "4": 2, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"9": { "0": 4, "1": 4, "2": 4, "3": 3, "4": 2, "5": 1, "6": 0, "7": 0, "8": 0, "9": 0 },
"10": { "0": 4, "1": 4, "2": 4, "3": 3, "4": 3, "5": 2, "6": 0, "7": 0, "8": 0, "9": 0 },
"11": { "0": 4, "1": 4, "2": 4, "3": 4, "4": 3, "5": 2, "6": 1, "7": 0, "8": 0, "9": 0 },
"12": { "0": 4, "1": 4, "2": 4, "3": 4, "4": 3, "5": 3, "6": 2, "7": 0, "8": 0, "9": 0 },
"13": { "0": 4, "1": 4, "2": 4, "3": 4, "4": 4, "5": 3, "6": 2, "7": 1, "8": 0, "9": 0 },
"14": { "0": 4, "1": 4, "2": 4, "3": 4, "4": 4, "5": 3, "6": 3, "7": 2, "8": 0, "9": 0 },
"15": { "0": 4, "1": 4, "2": 4, "3": 4, "4": 4, "5": 4, "6": 3, "7": 2, "8": 1, "9": 0 },
"16": { "0": 4, "1": 4, "2": 4, "3": 4, "4": 4, "5": 4, "6": 3, "7": 3, "8": 2, "9": 0 },
"17": { "0": 4, "1": 4, "2": 4, "3": 4, "4": 4, "5": 4, "6": 4, "7": 3, "8": 2, "9": 1 },
"18": { "0": 4, "1": 4, "2": 4, "3": 4, "4": 4, "5": 4, "6": 4, "7": 3, "8": 3, "9": 2 },
"19": { "0": 4, "1": 4, "2": 4, "3": 4, "4": 4, "5": 4, "6": 4, "7": 4, "8": 3, "9": 3 },
"20": { "0": 4, "1": 4, "2": 4, "3": 4, "4": 4, "5": 4, "6": 4, "7": 4, "8": 4, "9": 4 }
},
"Companion": {
"HD": 0.75,
"BAB": 0.75,
"Fort": 0.5,
"Ref": 0.5,
"Will": 0.33333333334,
"Skills": 1,
"Feats": 0.5,
"NAC": 0.33333333334,
"Stats": 0.33333333334,
"Tricks": 0.33333333334
}
},
"Sorcerer": {
"BAB": 0.5,
"Fort": 0.33333333334,
"Ref": 0.33333333334,
"Will": 0.5,
"Skills": 3,
"KnowSkills": 4,
"SPD": {
"1": { "1": 3, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"2": { "1": 4, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"3": { "1": 5, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"4": { "1": 6, "2": 3, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"5": { "1": 6, "2": 4, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"6": { "1": 6, "2": 5, "3": 3, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"7": { "1": 6, "2": 6, "3": 4, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"8": { "1": 6, "2": 6, "3": 5, "4": 3, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"9": { "1": 6, "2": 6, "3": 6, "4": 4, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"10": { "1": 6, "2": 6, "3": 6, "4": 5, "5": 3, "6": 0, "7": 0, "8": 0, "9": 0 },
"11": { "1": 6, "2": 6, "3": 6, "4": 6, "5": 4, "6": 0, "7": 0, "8": 0, "9": 0 },
"12": { "1": 6, "2": 6, "3": 6, "4": 6, "5": 5, "6": 3, "7": 0, "8": 0, "9": 0 },
"13": { "1": 6, "2": 6, "3": 6, "4": 6, "5": 6, "6": 4, "7": 0, "8": 0, "9": 0 },
"14": { "1": 6, "2": 6, "3": 6, "4": 6, "5": 6, "6": 5, "7": 3, "8": 0, "9": 0 },
"15": { "1": 6, "2": 6, "3": 6, "4": 6, "5": 6, "6": 6, "7": 4, "8": 0, "9": 0 },
"16": { "1": 6, "2": 6, "3": 6, "4": 6, "5": 6, "6": 6, "7": 5, "8": 3, "9": 0 },
"17": { "1": 6, "2": 6, "3": 6, "4": 6, "5": 6, "6": 6, "7": 6, "8": 4, "9": 0 },
"18": { "1": 6, "2": 6, "3": 6, "4": 6, "5": 6, "6": 6, "7": 6, "8": 5, "9": 3 },
"19": { "1": 6, "2": 6, "3": 6, "4": 6, "5": 6, "6": 6, "7": 6, "8": 6, "9": 4 },
"20": { "1": 6, "2": 6, "3": 6, "4": 6, "5": 6, "6": 6, "7": 6, "8": 6, "9": 6 }
},
"SK": {
"1": { "0": 4, "1": 2, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"2": { "0": 5, "1": 2, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"3": { "0": 5, "1": 3, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"4": { "0": 6, "1": 3, "2": 1, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"5": { "0": 6, "1": 4, "2": 2, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"6": { "0": 7, "1": 4, "2": 2, "3": 1, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"7": { "0": 7, "1": 5, "2": 3, "3": 2, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"8": { "0": 8, "1": 5, "2": 3, "3": 2, "4": 1, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"9": { "0": 8, "1": 5, "2": 4, "3": 3, "4": 2, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0 },
"10": { "0": 9, "1": 5, "2": 4, "3": 3, "4": 2, "5": 1, "6": 0, "7": 0, "8": 0, "9": 0 },
"11": { "0": 9, "1": 5, "2": 5, "3": 4, "4": 3, "5": 2, "6": 0, "7": 0, "8": 0, "9": 0 },
"12": { "0": 9, "1": 5, "2": 5, "3": 4, "4": 3, "5": 2, "6": 1, "7": 0, "8": 0, "9": 0 },
"13": { "0": 9, "1": 5, "2": 5, "3": 4, "4": 4, "5": 3, "6": 2, "7": 0, "8": 0, "9": 0 },
"14": { "0": 9, "1": 5, "2": 5, "3": 4, "4": 4, "5": 3, "6": 2, "7": 1, "8": 0, "9": 0 },
"15": { "0": 9, "1": 5, "2": 5, "3": 4, "4": 4, "5": 4, "6": 3, "7": 2, "8": 0, "9": 0 },
"16": { "0": 9, "1": 5, "2": 5, "3": 4, "4": 4, "5": 4, "6": 3, "7": 2, "8": 1, "9": 0 },
"17": { "0": 9, "1": 5, "2": 5, "3": 4, "4": 4, "5": 4, "6": 3, "7": 3, "8": 2, "9": 0 },
"18": { "0": 9, "1": 5, "2": 5, "3": 4, "4": 4, "5": 4, "6": 3, "7": 3, "8": 2, "9": 1 },
"19": { "0": 9, "1": 5, "2": 5, "3": 4, "4": 4, "5": 4, "6": 3, "7": 3, "8": 3, "9": 2 },
"20": { "0": 9, "1": 5, "2": 5, "3": 4, "4": 4, "5": 4, "6": 3, "7": 3, "8": 3, "9": 3 }
},
"Familiar": {
"INT": 0.5,
"NAC": 0.5
}
},
"Mystic Theurge": {
"BAB": 0.5,
"Fort": 0.33333333334,
"Ref": 0.33333333334,
"Will": 0.5,
"Skills": 3,
"KnowSkills": 4,
"CS": 0.5
},
"Arcane Heirophant": {
"BAB": 0.75,
"Fort": 0.33333333334,
"Ref": 0.33333333334,
"Will": 0.5,
"Skills": 5,
"KnowSkills": 2,
"CS": 0.5
}
}
Acrobatics: 1
Appraise: 1
Bluff: 1
Climb: 1
Craft: 1
Fly: 1
Handle Animal: 1
Heal: 1
Intimidate: 1
Know Arcane: 1
Know Geography: 1
Know Nature: 1
Know Planes: 1
Know Religion: 1
Perception: 1
Profession: 1
Ride: 1
Sense Motive: 1
Spellcraft: 1
Survival: 1
Use Magic Device: 1
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Clear Grove
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
10 minutes V, S, M/DF (a miniature hoe)
Range: close (25 ft. + 5 ft./2 levels)
Effect: 20-ft.-radius clearing
Duration: 2 hours/level (D)
Saving Throw: none Spell Resistance: no
"""
Trees, shrubs, and other thick vegetation move out of the spell's area. The affected area is cleared of all vegetation thick enough to provide cover or concealment. This also creates a hole in any tree canopy, allowing sunlight to pass through. Affected trees and undergrowth form a 5-foot-wide ring along the edge of the clearing, which may provide cover or concealment based on the thickness of the vegetation (at the GM's discretion). This spell doesn't affect creatures of the plant type. The spell can affect vegetation altered with spells of equal or lower level (such as entangle or spike growth). When the spell ends, the trees and undergrowth move back to their original places unless they're destroyed or somehow restrained (the amount of time this takes is subject to the GM's discretion).
Source: Heroes Of The Wild
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Cleromancy
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
divination
full-round action V, S, F/DF (a set of 64 chicken bones)
Range: personal
Targets: you
Duration: 1 round/caster level
Saving Throw: none Spell Resistance: no
"""
Cleromancy involves casting bones and interpreting the results. Those able to arrive at the proper interpretation are granted knowledge of coming events. Roll 1d4 per caster level. Group the dice by like results, and choose one of the groups. For the duration of cleromancy, you can apply a luck bonus equal to the result of the selected dice to any d20 roll. You can apply this bonus to a number of rolls equal to the number of dice in the group. If cleromancy expires before you are able to allocate the total number of allotted bonuses, the remaining bonuses are lost.
Source: Occult Mysteries
You are skilled at scaling vertical surfaces, from smooth city walls to rocky cliffs.
!! Check
With a successful Climb check, you can advance up, down, or across a slope, wall, or other steep incline (or even across a ceiling, provided it has handholds) at one-quarter your normal speed. A slope is considered to be any incline at an angle measuring less than 60 degrees; a wall is any incline at an angle measuring 60 degrees or more. A Climb check that fails by 4 or less means that you make no progress, and one that fails by 5 or more means that you fall from whatever height you have already attained. The DC of the check depends on the conditions of the climb. Compare the task with those on the following table to determine an appropriate DC.
You need both hands free to climb, but you may cling to a wall with one hand while you cast a spell or take some other action that requires only one hand. While climbing, you can’t move to avoid a blow, so you lose your Dexterity bonus to AC (if any). You also can’t use a shield while climbing. Anytime you take damage while climbing, make a Climb check against the DC of the slope or wall. Failure means you fall from your current height and sustain the appropriate falling damage.
| !DC |!Example Surface or Activity |
| 0 |A slope too steep to walk up, or a knotted rope with a wall to brace against. |
| 5 |A rope with a wall to brace against, or a knotted rope, or a rope affected by the rope trick spell. |
| 10 |A surface with ledges to hold on to and stand on, such as a very rough wall or a ship’s rigging. |
| 15 |Any surface with adequate handholds and footholds (natural or artificial), such as a very rough natural rock surface or a tree, or an unknotted rope, or pulling yourself up when dangling by your hands. |
| 20 |An uneven surface with some narrow handholds and footholds, such as a typical wall in a dungeon. |
| 21 |A typical buildings upper-story wall |
| 25 |A typical buildings lower-story wall |
| 25 |A rough surface, such as a natural rock wall or a brick wall. |
| 30 |An overhang or ceiling with handholds but no footholds, or a typical city wall |
| — |A perfectly smooth, flat, vertical (or inverted) surface cannot be climbed. |
|!Climb DC Modifier |!Example Surface or Activity |
| –10 |Climbing a chimney (artificial or natural) or other location where you can brace against two opposite walls. |
| –5 |Climbing a corner where you can brace against perpendicular walls. |
| +5 |Surface is slippery. |
"""*These modifiers are cumulative; use all that apply."""
!! Accelerated Climbing
You try to climb more quickly than normal. By accepting a –5 penalty, you can move half your speed (instead of one-quarter your speed).
!! Make Your Own Handholds and Footholds
You can make your own handholds and footholds by pounding pitons into a wall. Doing so takes 1 minute per piton, and one piton is needed per 5 feet of distance. As with any surface that offers handholds and footholds, a wall with pitons in it has a DC of 15. In the same way, a climber with a handaxe or similar implement can cut handholds in an ice wall.
!! Catch Yourself When Falling
It’s practically impossible to catch yourself on a wall while falling. Make a Climb check (DC = wall’s DC + 20) to do so. It’s much easier to catch yourself on a slope (DC = slope’s DC + 10).
!!Catch a Falling Character While Climbing
If someone climbing above you or adjacent to you falls, you can attempt to catch the falling character if he or she is within your reach. Doing so requires a successful melee touch attack against the falling character (though he or she can voluntarily forgo any Dexterity bonus to AC if desired). If you hit, you must immediately attempt a Climb check (DC = wall’s DC + 10). Success indicates that you catch the falling character, but his total weight, including equipment, cannot exceed your heavy load limit or you automatically fall. If you fail your Climb check by 4 or less, you fail to stop the character’s fall but don’t lose your grip on the wall. If you fail by 5 or more, you fail to stop the character’s fall and begin falling as well.
Action
Climbing is part of movement, so it’s generally part of a move action (and may be combined with other types of movement in a move action). Each move action that includes any climbing requires a separate Climb check. Catching yourself or another falling character doesn’t take an action.
!! Modifiers
''Rope''
You can use a rope to haul a character upward (or lower a character) through sheer strength. You can lift double your maximum load in this manner.
''Climb Speed''
A creature with a climb speed has a +8 racial bonus on all Climb checks. The creature must make a Climb check to climb any wall or slope with a DC higher than 0, but it can always choose to take 10, even if rushed or threatened while climbing. If a creature with a climb speed chooses an accelerated climb (see above), it moves at double its climb speed (or at its land speed, whichever is slower) and makes a single Climb check at a –5 penalty. Such a creature retains its Dexterity bonus to Armor Class (if any) while climbing, and opponents get no special bonus to their attacks against it. It cannot, however, use the run action while climbing.
''Feats''
If you have the Athletic feat, you get a +2 bonus on Climb checks. If you have 10 or more ranks in Climb, the bonus increases to +4.
''Size''
Any creature of Tiny or smaller size should use its Dex modifier instead of its Str modifier for Climb and Swim checks (see FAQ).
''FAQ''
Should all Tiny creatures use Dex instead of Str for Climb and Swim skill checks, or is that just for familiars?
Any creature of Tiny or smaller size should use its Dex modifier instead of its Str modifier for Climb and Swim checks.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Climbing Beanstalk
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation)
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Effect: 5-ft. square of climbable beanstalks
Duration: instantaneous
Saving Throw: Spell Resistance:
"""
You cause a thick, sturdy beanstalk to sprout from the ground and grow upward to a height of 10 feet + 5 feet per 2 caster levels. The growing stalk anchors itself to sturdy objects such as walls or ceilings, and grows around objects that do not fully obstruct its square (such as tree branches), but is stopped by solid obstacles. The beanstalk provides numerous hand- and footholds; its climb DC 5. The beanstalk can support up to 200 pounds plus 50 pounds per caster level, or double that amount if anchored on its upper end. If it anchors itself to a sturdy mobile object (such as a ship or a siege engine), breaking the object free requires a DC 23 Strength check or cutting through the beanstalk (hardness 2, 40 hp). If the ground is capable of supporting plant life, the beanstalk continues to live as a normal plant, and it produces nutritious (if unappetizing) beans. Otherwise, the plant dies after 1d6 hours; its husk remains as durable as a small tree.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Cloak of Shade
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration
1 standard action V, S, M (a leaf from a shade tree)
Range: touch
Targets: one creature per level
Duration: 1 hour/level (D)
Saving Throw: Will negates (harmless) Spell Resistance: yes
"""
(harmless) This spell provides the subject with some degree of protection from the harmful effects of the sun. The cloaked subject treats environmental heat due to sun exposure as one level less: severe heat is considered very hot conditions, while very hot is considered average temperature (see page 444 of the Core Rulebook for heat dangers). The cloak of shade also reduces any penalties from sunlight by 1. The spell does not, however, eliminate the effects of direct sunlight on creatures vulnerable to sunlight. Cloak of shade has no effect on environmental heat from sources other than the sun.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Cloak of Winds
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
abjuration
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one living creature
Duration: 1 minute/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
You shroud a creature in a whirling screen of strong, howling wind. The subject is never checked or blown away by strong winds of windstorm or lesser strength (whether natural or magically created), and ranged attack rolls against the subject take a -4 penalty. Tiny or smaller creatures must succeed at a Fortitude save to successfully touch or attack the subject in melee. Failure knocks the attacker prone and pushes it 5 feet away from the subject per level of the caster. This movement can pass through the squares of other creatures without affecting them and does not provoke attacks of opportunity, but the creature takes 3d6 points of nonlethal damage, plus 1d6 if the creature strikes a solid object that blocks its movement.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Cloud Of Seasickness
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [poison]
1 standard action V, S, M (a piece of seaweed)
Range: close (25 ft. + 5 ft./2 levels)
Effect: cloud spreads in 20-ft. radius, 20 ft. high
Duration: 1 round/level
Saving Throw: Fortitude negates; see text Spell Resistance: no
"""
This spell functions like stinking cloud, except as noted above and that the vapors make creatures sickened instead of nauseated. Cloud of seasickness can be made permanent with a permanency spell (requiring a 9th-level caster and costing 2,500 gp). A permanent cloud of seasickness dispersed by wind reforms in 10 minutes.
Source: AP 55
!! [[Cold Domain]]
At 1st level, a druid forms a bond with nature. This bond can take one of two forms: one of the cleric domains or form a close bond with an animal companion. The first is a close tie to the natural world, granting the druid one of the following cleric domains: Air, Animal, Earth, Fire, Plant, Water, or Weather. Druids also have access to a set of Animal and Terrain Domains. When determining the powers and bonus spells granted by this domain, the druid’s effective cleric level is equal to her druid level. A druid that selects this option also receives additional domain spell slots, just like a cleric. She must prepare the spell from her domain in this slot and this spell cannot be used to cast a spell spontaneously.
Each domain grants a number of domain powers, dependent upon the level of the druid, as well as a number of bonus spells. A druid gains one domain spell slot for each level of druid spell she can cast, from 1st on up. Each day, a druid can prepare one of the spells from her domain in that slot. If a domain spell is not on the druid spell list, a druid can prepare it only in her domain spell slot. Domain spells cannot be used to cast spells spontaneously.
In addition, a druid gains the listed powers from her domain, if she is of a high enough level. Unless otherwise noted, activating a domain power is a standard action.
You can manipulate water and mist and ice, conjure creatures of water, and resist cold.
!!Diety: [[Ulutiu]] (LN)
"""
''The Eternal Sleeper, The Lord in the Ice, Father of Giants' Kin''
''Domains'': Animal, Law, [[Cold|Cold Domain]], Ocean, Protection
''Weapon Familiarity'': Long Spear
Can't Cast [Chaos] spells
''Granted Powers''
{{Icicle}}
{{Cold Resistance}}
''Domain Spells'': 1st - [[Frostbite|Frostbite Spell]], 2nd - [[Chill Metal|Chill Metal Spell]], 3rd - [[Sleet Storm|Sleet Storm Spell]], 4th - [[Ice Storm|Ice Storm Spell], 5th - [[Wall of Ice|Wall of Ice Spell]], 6th - [[Cone of Cold|Cone of Cold Spell]], 7th - [[Control Weather|Control Weather Spell]], 8th - [[Polar Ray|Polar Ray Spell]], 9th - [[Obedient Avalanche|Obedient Avalanche Spell]]
[[Cold Resistance]] (//Ex//): At 6th level, you gain resist cold 10. This resistance increases to 20 at 12th level. At 20th level, you gain immunity to cold.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Collaborative Thaumaturgy
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
universal
1 immediate action V, S, F (a bronze tuning fork)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: instantaneous
Saving Throw: Spell Resistance:
"""
You tap into the magical resonance between you and your allies to enhance one another's magic. Cast this spell when an ally casts a spell at least 1 level lower than the highest-level spell she can cast. The ally casts her spell as if one of the following metamagic feats were applied to it without increasing the spell level or casting time: Enlarge Spell, Extend Spell, Silent Spell, or Still Spell. If the ally is the target of two collaborative thaumaturgy spells when casting a spell, the ally can instead apply the Empower Spell metamagic feat to a spell at least 2 levels lower than the highest-level spell she can cast. Finally, if the ally is the target of three collaborative thaumaturgy spells when casting a spell, she can instead apply the Maximize Spell or Widen Spell metamagic feat to a spell at least 3 levels lower than the highest-level spell she can cast. You can't target yourself with collaborative thaumaturgy.
Source: Pathfinder Society Primer
\define oldHP()
{{CharacterData##CurrentHP}}
\end
\define newAddHP()
<$macrocall $name="increment" value=$(oldValue)$ step="1" />
\end
\define newMinusHP()
<$macrocall $name="increment" value=$(oldValue)$ step="-1" />
\end
\define plusButton()
<$button set="CharacterData##CurrentHP" setTo="$(newAddValue)$" > + </$button>
\end
\define minusButton()
<$button set="CharacterData##CurrentHP" setTo="$(newMinusValue)$" > - </$button>
\end
! [[Combat]]
! [[HP|Leveling]]: {{CharacterData##HP}}
<$set name=oldValue value=<<oldHP>> >
<$set name=newAddValue value=<<newAddHP>> >
<$set name=newMinusValue value=<<newMinusHP>> >
<$wikify name=thisPButton text=<<plusButton>> >
<$wikify name=thisMButton text=<<minusButton>> >
<table class="borderless" style="font-size:150%"><tr><td style="align:left">Current HP: </td><td style="border: 1px solid black !important;"> {{CharacterData##CurrentHP}} </td><td><<thisPButton>></td><td><<thisMButton>></td></tr></table>
</$wikify>
</$wikify>
</$set>
</$set>
</$set>
!! Move: 30
|!Armor Class |!Total|!|!Armor|!Shield|!DEX|!Size|!Dodge|!Natural|!Deflect|!Misc|!Temp|
|!AC | 17 | 10 | +0 | +0 | <<statModifier DEX>> | +0 | +0 | +0 | +2 | +0 | +4 |
|!Touch | 13 | 10 ||| <<statModifier DEX>> | +0 | +0 || +2 | +0 | +0 |
|!Flat-Foot | 16 | 10 | +0 | +0 || +0 || +0 | +2 | +0 | +4 |
Modifiers: [[Heavy Wooden Shield|Equipment]] +2, [[Ring of Protection]] +2 Temp: [[Mage Armor|Mage Armor Spell]] +4
!! [[Base Attack Bonus|Leveling]]: +<<baseAttackBonus>>
!! Initiative: <<statModifier DEX>>
|!Attacks |!Total|!|!BAB|!STR|!DEX|!Size|!Misc|!Temp|
|!Melee | +<$calc><<baseAttackBonus>>+<<statModifier STR>>+0</$calc> || +<<baseAttackBonus>> | <<statModifier STR>> || +0 | +0 | +0 |
|!Ranged | +<$calc><<baseAttackBonus>>+<<statModifier DEX>>+0</$calc> || +<<baseAttackBonus>> || <<statModifier DEX>> | +0 | +0 | +0 |
|!CMB | +<$calc><<baseAttackBonus>>+<<statModifier STR>>+0</$calc> || +<<baseAttackBonus>> | <<statModifier STR>> || +0 | +0 | +0 |
|!CMD | <$calc>10+<<baseAttackBonus>>+<<statModifier STR>>+<<statModifier DEX>>+0</$calc> | 10 | +<<baseAttackBonus>> | <<statModifier STR>> | <<statModifier DEX>> | +0 | +0 | +0 |
!! Saves
{{Saving Throws}}
!! Attacks
{{Attacks}}
''Combined Spells (Su)''
A mystic theurge can prepare and cast spells from one of his spellcasting classes using the available slots from any of his other spellcasting classes. Spells prepared or cast in this way take up a slot one level higher than they originally occupied. This ability cannot be used to cast a spell at a lower level if that spell exists on both spell lists. At 1st level, a mystic theurge can prepare 1st-level spells from one of his spellcasting classes using the 2nd-level slots of the other spellcasting class. Every two levels thereafter, the level of spells that can be cast in this way increases by one, to a maximum of 5th-level spells at 9th level (these spells would take up 6th-level spell slots). The components of these spells do not change, but they otherwise follow the rules for the spellcasting class used to cast the spell.
Spontaneous spellcasters can only select spells that they have prepared that day using non-spontaneous classes for this ability, even if the spells have already been cast. For example, a cleric/sorcerer/mystic theurge can use this ability to spontaneously cast a bless spell using a 2nd-level sorcerer spell slot, if the character had a prepared bless spell using a 1st-level cleric spell slot, even if that spell had already been cast that day.
Come (DC 15) The animal comes to you, even if it normally would not do so.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Communal Delay Poison
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (healing)
1 standard action V, S, DF
Range: touch
Targets: creatures touched
Duration: 1 hour/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like delay poison, except you divide the duration in 1-hour intervals among the creatures touched.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Communal Resist Energy
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
abjuration
1 standard action V, S, DF
Range: touch
Targets: creatures touched
Duration: 10 min./level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like resist energy, except you divide the duration in 10-minute intervals among the creatures touched.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Communal Share Language
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
divination
1 standard action V, S, M (a page from a dictionary)
Range: touch
Targets: creatures touched
Duration: 24 hours
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like share language (Advanced Player's Guide 243), except you divide the duration in 1-hour increments among the creatures touched.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Communal Spider Climb
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (a live spider)
Range: touch
Targets: creatures touched
Duration: 10 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like spider climb, except you divide the duration in 10-minute intervals among the creatures touched.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Commune With Birds
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, S
Range: personal
Targets: you
Duration: 10 minutes; see text
Saving Throw: Spell Resistance:
"""
You utter a question in the form of a low-pitched bird call that can be heard up to a mile away, and can understand the responses given by birds in the area. Over the next 10 minutes, the birds reply as if you had asked them the question using speak with animals, giving you a general consensus answer to the question based on their knowledge. For example, you could ask if there is drinkable water in the area, the location of predators or other creatures, directions to a mountaintop or other natural feature, and so on, and the local bird communities would answer to the best of their ability. If there are no birds in range, the spell has no effect and you do not get a response. Any creature using speak with animals (or a similar ability) who hears this bird call can understand your question, though it may not be able to reply in a way you can hear.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Companion Life Link
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
necromancy
1 standard action V, S, M/DF (a drop of eidolon ichor)
Range: touch
Targets: one of your animal companions or your familiar
Duration: 1 minute/level (see below)
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
You create a life link between yourself and the target. You sense whenever the target is wounded and are made immediately aware if the target is slain. If you are wounded or slain, the target is made aware. As a free action, you can call out to the target, causing it to return to you (if able and willing); this ends the spell.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Companion Mind Link
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
enchantment (charm) [mind-affecting]
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: your animal companion
Duration: 1 minute/level
Saving Throw: Spell Resistance:
"""
The link between you and your animal companion becomes stronger. As long as you are within line of sight of your animal companion, you can telepathically communicate with it as if you two shared a language. Also, as long as you are within line of sight of the animal companion, you can push your animal companion a swift action instead of a move action, and you do not need to succeed at Handle Animal checks to handle your animal companion. Such checks automatically succeed.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Compel Tongue
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
enchantment (compulsion) [mind-affecting]
1 standard action V, S, M (a wooden block carved with a letter)
Range: touch
Targets: one creature
Duration: 1 hour/level (D)
Saving Throw: Will negates Spell Resistance: yes
"""
This spell functions as share language (Pathfinder RPG Advanced Player's Guide 243), granting a creature the ability to read, understand, and communicate to the best of its ability in any one language you know. For the spell's entire duration, the target can speak and write only in the language imparted, but its ability to understand other languages is unaffected.
Source: Black Markets
! Constrictor Snake
|N Medium animal |
|''Init'' +1 ''Senses'' [[Scent]] ''Perception'' +12|
|!Defense |
|''AC'' 15, touch 13, flat-footed 12 |
|''hp'' 19 (3d8+6) |
|''Fort'' +4, ''Ref'' +6, ''Will'' +2 |
|!Offense |
|''Speed'' 20 ft., climb 20 ft., swim 20 ft. |
|''Melee'' bite +5 (1d4+4 plus grab) |
|''Special Attacks'' [[Constrict]] (1d4+4) |
|!Statistics |
|''Str'' 17, ''Dex'' 17, ''Con'' 12, ''Int'' 1, ''Wis'' 12, ''Cha'' 2 |
|''Base Attack'' +2, ''CMB'' +5 (+9 grapple), ''CMD'' 18 (can't be [[Tripped|Trip]]) |
|''Feats'' Skill Focus (Perception), Toughness |
|''Skills'' Acrobatics +15, Climb +11, Perception +12, Stealth +11, Swim +11 |
|''Racial Modifiers'' +4 Perception, +4 Stealth, +8 Acrobatics |
|!Special Abilities |
Be they jungle-dwelling pythons or swamp-dwelling boas like the anaconda, constrictor snakes are among the most deadly predatory animals of the tropical wilds. Fortunately, these large snakes are relatively passive, save for when they are preparing to shed their skins or are particularly hungry. Nevertheless, the sinuous creatures are held in fear by many societies who often ascribe fiendish qualities to them.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Contagion
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
necromancy
1 standard action V, S
Range: touch
Targets: living creature touched
Duration: instantaneous
Saving Throw: Fortitude negates Spell Resistance: yes
"""
The subject contracts one of the following diseases: blinding sickness, bubonic plague, cackle fever, filth fever, leprosy, mindfire, red ache, shakes, or slimy doom. The disease is contracted immediately (the onset period does not apply). Use the disease's listed frequency and save DC to determine further effects. For more information on these diseases, see page 557.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Control Temperature
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 round V, S, M (drop of mercury), DF
Range: 20 ft./level
Area: 20-cubic-ft.-radius emanation, centered on you
Duration: 1 hour/level
Saving Throw: none Spell Resistance: no
"""
You imbue an area with cold or fire energy, reducing or raising the temperature by one temperature band per five caster levels.
Effects of the new temperature on creatures and the environment are incurred immediately (see Cold Dangers, page 8 of this book, and Heat Dangers, page 303 of the Dungeon Master's Guide).
Source: Frostburn
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Control Vermin
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF/M (a beetle)
Range: close (25 ft. + 5 ft./2 levels)
Targets: up to 1 HD/level of vermin, no two of which can be more than 30 ft. apart
Duration: 1 hour/level
Saving Throw: Will negates Spell Resistance: no
"""
You and a number of allies less than or equal to your caster level designated upon casting can use Handle Animal and Ride checks to influence or control the targeted vermin as if they were animals and had animal-level intelligence.
Source: Monster Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Corona of Cold
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S, DF
Range: 10 ft.
Area: 10-ft.-radius emanation centered on you
Duration: 1 round /level (D)
Saving Throw: Fortitude negates Spell Resistance: yes
"""
You are surrounded by a protective aura of cold that also causes damage to others within its radius. You gain resistance to fire 10. Starting in the round you cast the spell, corona of cold also deals 1d12 points of cold damage each round at the beginning of your turn to all other creatures within the area. A successful save prevents the damage caused by the spell in that round, but does not prevent damage in future rounds. Creatures damaged by the spell shiver uncontrollably, taking a —2 penalty to their Strength and Dexterity and moving at half speed for as long as they remain within the area; these penalties do not stack with consecutive rounds of damage or additional corona of cold spells.
Source: Spell Compendium
You are skilled in the creation of a specific group of items, such as armor or weapons. Like Knowledge, Perform, and Profession, Craft is actually a number of separate skills. You could have several Craft skills, each with its own ranks. The most common Craft skills are alchemy, armor, baskets, books, bows, calligraphy, carpentry, cloth, clothing, glass, jewelry, leather, locks, paintings, pottery, sculptures, ships, shoes, stonemasonry, traps, and weapons.
A Craft skill is specifically focused on creating something. If nothing is created by the endeavor, it probably falls under the heading of a Profession skill.
!! Common Uses
!! Practice a Trade
You can practice your trade and make a decent living, earning half your check result in gold pieces per week of dedicated work. You know how to use the tools of your trade, how to perform the craft’s daily tasks, how to supervise untrained helpers, and how to handle common problems. (Untrained laborers and assistants earn an average of 1 silver piece per day.)
Make Something
The basic function of the Craft skill, however, is to allow you to make an item of the appropriate type. The DC depends on the complexity of the item to be created. The DC, your check result, and the price of the item determine how long it takes to make a particular item. The item’s finished price also determines the cost of raw materials.
To determine how much time and money it takes to make an item, follow these steps.
"""
Find the item’s price in silver pieces (1 gp = 10 sp).
Find the item’s DC from Table: Craft Skills.
Pay 1/3 of the item’s price for the raw material cost.
"""
Make an appropriate Craft check representing one week’s worth of work. If the check succeeds, multiply your check result by the DC. If the result × the DC equals the price of the item in sp, then you have completed the item. (If the result × the DC equals double or triple the price of the item in silver pieces, then you’ve completed the task in one-half or one-third of the time. Other multiples of the DC reduce the time in the same manner.) If the result × the DC doesn’t equal the price, then it represents the progress you’ve made this week. Record the result and make a new Craft check for the next week. Each week, you make more progress until your total reaches the price of the item in silver pieces.
''Action'': Craft checks are made by the day or week (see above).
''Retry?'' Yes, but if you fail a check by 4 or less, you make no progress this week (or day, see below). If you miss by 5 or more, you ruin half the raw materials and have to pay half the original raw material cost again.
!!Modifiers
''Tools'': All crafts require artisan’s tools to give the best chance of success. If improvised tools are used, the check is made with a –2 penalty. On the other hand, masterwork artisan’s tools provide a +2 circumstance bonus on the check.
''Fabricate Spell'' In some cases, the fabricate spell can be used to achieve the results of a Craft check with no actual check involved. You must still make an appropriate Craft check when using the spell to make articles requiring a high degree of craftsmanship.
''Ironwood Spell'': A successful Craft check related to woodworking in conjunction with the casting of the ironwood spell enables you to make wooden items that have the strength of steel.
''Minor Creation'': When casting the spell minor creation, you must succeed on an appropriate Craft check to make a complex item.
''Progress by the Day'': You can make checks by the day instead of by the week if desired. In this case your progress (check result × DC) should be divided by the number of days in a week.
|!Item |!Craft Skill |!Craft DC |
|Acid |Alchemy | 15 |
|Alchemist’s fire, smokestick, or tindertwig |Alchemy | 20 |
|Antitoxin, sunrod, tanglefoot bag, or thunderstone |Alchemy | 25 |
|Armor or shield |Armor | 10 + AC bonus |
|Longbow, shortbow, or arrows |Bows | 12 |
|Composite longbow or composite shortbow |Bows | 15 |
|Composite longbow or composite shortbow with high strength rating |Bows | 15 + (2 x rating) |
|Crossbow, or bolts |Weapons | 15 |
|Simple melee or thrown weapon |Weapons | 12 |
|Martial melee or thrown weapon |Weapons | 15 |
|Exotic melee or thrown weapon |Weapons | 18 |
|Mechanical trap |Traps | Varies^^1^^ |
|Very simple item (wooden spoon) |Varies | 5 |
|Typical item (iron pot) |Varies | 10 |
|High-quality item (bell) |Varies | 15 |
|Complex or superior item (lock) |Varies | 20 |
^^1^^ Traps have their own rules for construction.
!! Create Masterwork Item
You can make a masterwork item: a weapon, suit of armor, shield, or tool that conveys a bonus on its use through its exceptional craftsmanship. To create a masterwork item, you create the masterwork component as if it were a separate item in addition to the standard item. The masterwork component has its own price (300 gp for a weapon or 150 gp for a suit of armor or a shield, see Equipment for the price of other masterwork tools) and a Craft DC of 20. Once both the standard component and the masterwork component are completed, the masterwork item is finished. The cost you pay for the masterwork component is one-third of the given amount, just as it is for the cost in raw materials.
''Action'': Craft checks are made by the day or week (see above).
''Retry?'' Yes, but each time you miss by 5 or more, you ruin half the raw materials and have to pay half the original raw material cost again.
!!Repair Item
You can repair an item by making checks against the same DC that it took to make the item in the first place. The cost of repairing an item is one-fifth of the item’s price.
''Action'': Craft checks are made by the day or week (see above).
''Retry?'' Yes, but each time you miss by 5 or more, you ruin half the raw materials and have to pay half the original raw material cost again.
!!Other Special Situations & Modifiers
''Accelerated Crafting''
You may voluntarily add +10 to the indicated DC to craft an item. This allows you to create the item more quickly (since you’ll be multiplying this higher DC by your Craft check result to determine progress). You must decide whether to increase the DC before you make each weekly or daily check.
''Tools & Equipment''
To make an item using Craft (alchemy), you must have alchemical equipment. If you are working in a city, you can buy what you need as part of the raw materials cost to make the item, but alchemical equipment is difficult or impossible to come by in some places. Purchasing and maintaining an alchemist’s lab grants a +2 circumstance bonus on Craft (alchemy) checks because you have the perfect tools for the job, but it does not affect the cost of any items made using the skill.
''Gnome ''
A gnome receives a +2 bonus on a Craft or Profession skill of her choice.
''Craft (mechanical)''
Those who wish to construct or repair technological items use Craft (mechanical) in conjunction with technological item crafting feats. Without the Technologist feat, Craft (mechanical) can still be used to craft less advanced forms of technology such as gears, hinges, and pulleys. NPCs with the means of crafting technological items are extremely rare, and it is not assumed that PCs have access to such resources. GMs are encouraged to discuss such considerations with their players before allowing technological crafting into the game.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Crafter's Nightmare
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
necromancy (haunted) [emotionUM, fear, mind-affecting]
1 standard action V, S, M (a broken tool)
Range: close (25 ft. + 5 ft./2 levels)
Area: one 5-ft. cube/level (S)
Duration: 1 day/level (D)
Saving Throw: Will negates Spell Resistance: yes
"""
You concentrate feelings of competitiveness, envy, and ill will into a poltergeist-like haunt that wreaks havoc on its victim's long-term endeavors. Every time a creature in the affected area attempts a Craft or Profession check to generate income, create an item, or earn capital (Pathfinder RPG Ultimate Campaign 85), any skill check required for crafting or repairing a magic item, or any skill check required for an occult ritual (Pathfinder RPG Occult Adventures 208), the haunt imposes a -5 penalty on the check. If the creature fails its check by 5 or more, the haunt's mischief deals 1d6 points of damage to the creature in addition to any other negative effects from such a failure. If the creature attempts to cast a spell with a casting time of 1 minute or longer, the haunt becomes similarly disruptive, requiring the caster to succeed at a concentration check (DC = 15 + spell level) or lose the spell and take 1d6 points of damage from the mischief. Each time the haunt is disruptive, the spell's haunt-like manifestation occurs during that round.
Source: Haunted Heroes Handbook
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Create Treasure Map
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
divination
1 hour V, S, M (powdered metal and rare inks worth 100 gp)
Range: touch
Targets: one dead creature
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
You can take a piece from a dead creature's body and use it to create a map that reveals the locations of any valuables that creature knew about while still alive. You must cut this piece off yourself and the creature cannot have died more than 24 hours prior to the casting of this spell. You cannot cast this spell on a creature without a physical body, and the portion you remove must have a fairly level surface such as a piece of hide, carapace, or skin. The map you create is accurate to the best knowledge the creature had at the time of its death. It reveals the location of one source of treasure for every three caster levels you possess. Any inaccuracies or faulty information held by the creature are represented on the map as well. Similarly, the map cannot account for any changes that occur after the creature's death. You must choose the scale of the map when creating it, opting between nearby (e.g., one or two dungeon levels), local (e.g., a valley or community), or broad (e.g., a country or larger). The map reveals the locations of what the creature deemed most valuable within its area. Depending on the creature, the map might reveal a source of tasty food, suitable mates, or even your own treasure vault.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Create Water
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
conjuration (creation) [water]
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Effect: up to 2 gallons of water/level
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
This spell generates wholesome, drinkable water, just like clean rain water. Water can be created in an area as small as will actually contain the liquid, or in an area three times as large--possibly creating a downpour or filling many small receptacles. This water disappears after 1 day if not consumed. Note: Conjuration spells can't create substances or objects within a creature. Water weighs about 8 pounds per gallon. One cubic foot of water contains roughly 8 gallons and weighs about 60 pounds.
Source: PFRPG Core
! Crocodile
|N Large animal |
|''Init'' +1 ''Senses'' [[Low-Light Vision]] ''Perception'' +8|
|!Defense |
|''AC'' 14, touch 10, flat-footed 13 |
|''hp'' 22 (3d8+9) |
|''Fort'' +6, ''Ref'' +4, ''Will'' +2 |
|!Offense |
|''Speed'' 20 ft., swim 30 ft. |
|''Melee'' bite +5 (1d8+4 plus grab) and tail slap +0 (1d12+2) |
|''Space'' 10, ''Reach'' 5 |
|''Special Attacks'' Death Roll (1d8+6 plus [[Trip]]) |
|!Statistics |
|''Str'' 19, ''Dex'' 12, ''Con'' 17, ''Int'' 1, ''Wis'' 12, ''Cha'' 2 |
|''Base Attack'' +2, ''CMB'' +7 (+11 grapple), ''CMD'' 18 (22 vs. [[Trip]]) |
|''Feats'' Skill Focus (Perception, Stealth) |
|''Skills'' Perception +8, Stealth +5 (+13 in water), Swim +12 |
|''Racial Modifiers'' +8 on Stealth in water |
|''SQ'' hold breath |
|!Special Abilities |
|!''Death Roll'' (Ex) |
|When grappling a foe of its size or smaller, a crocodile can perform a death roll upon making a successful grapple check. As it clings to its foe, it tucks in its legs and rolls rapidly, twisting and wrenching its victim. The crocodile inflicts its bite damage and knocks the creature prone. If successful, the crocodile maintains its grapple. |
|!''Hold Breath'' (Ex) |
|A crocodile can hold its breath for a number of rounds equal to 4 times its Constitution score before it risks drowning. |
|!''Sprint'' (Ex) |
|Once per minute a crocodile may sprint, increasing its land speed to 40 feet for 1 round. |
A crocodile is a primeval reptile that dwells in swamps or along the banks of rivers, a habitat that often puts it in violent contact with unsuspecting prey that come to the water’s edge to drink.
The typical crocodile is 14 feet long and weighs 1,400 pounds, but larger species exist. You can use these statistics for similar creatures, such as alligators.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Crumble
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Targets: one structure or construct
Duration: instantaneous
Saving Throw: Fortitude half (object) Spell Resistance: yes (object)
"""
You bring the forces of erosion to bear on a fabricated structure such as a stone, bridge, a wooden building, an iron wall, a construct, or any other object not formed by nature itself. The erosion deals 1d8 points of damage per caster level to the object (hardness does not apply) to a maximum of 10d8. The maximum size of the object affected depends on your level. If you cast this spell on an object of greater size than you can affect, the spell fails.
|!Level |Size of Object Affected |
|Up to 9th |Large |
|10th-15th |Huge |
|16th-18th |Gargantuan |
|19th-20th |Colossal |
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Cup Of Dust
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (a pinch of dust)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 1 day/level (D)
Saving Throw: Fortitude negates Spell Resistance: yes
"""
You curse the target with a thirst no drink can quench. On a failed saving throw, the target begins to dehydrate (see page 444 of the Core Rulebook for starvation and thirst). The effects of this spell cannot inflict more nonlethal damage than the target has hit points. No amount of drinking can counter this effect, although the target still experiences the other normal effects of any liquid imbibed (such as poisons or potions). Cup of dust can be removed with a break enchantment, limited wish, miracle, remove curse, or wish spell, but effects suffered as a result of dehydration must be healed by normal means.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Cure Light Wounds
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (healing)
1 standard action V, S
Range: touch
Targets: creature touched
Duration: instantaneous
Saving Throw: Will half (harmless); see text Spell Resistance: yes (harmless); see text
"""
When laying your hand upon a living creature, you channel positive energy that cures 1d8 points of damage + 1 point per caster level (maximum +5). Since undead are powered by negative energy, this spell deals damage to them instead of curing their wounds. An undead creature can apply spell resistance, and can attempt a Will save to take half damage.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Cure Moderate Wounds
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (healing)
1 standard action V, S
Range: touch
Targets: creature touched
Duration: instantaneous
Saving Throw: Will half (harmless); see text Spell Resistance: yes (harmless); see text
"""
This spell functions like cure light wounds, except that it cures 2d8 points of damage + 1 point per caster level (maximum +10).
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Daggermark's Exchange
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a dose of poison)
Range: personal
Targets: you
Duration: instantaneous
Saving Throw: Spell Resistance:
"""
You swallow a dose of poison with no effect and regurgitate a dose of a different poison (your choice) into the old container (or another you have on hand). Attempt a Craft (alchemy) check against the new poison's DC. If you succeed, you create a dose of your chosen poison. If you fail, the poison you regurgitate is inert. If you roll a natural 1, you expose yourself to the original poison (although you remain immune to that poison if you have venom immunity or a similar class feature or ability). The new poison's price must be the same as or less than the original poison's price.
Source: Inner Sea Intrigue
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Damp Powder
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M/DF (a damp piece of cotton)
Range: close (25 ft. + 5 ft./2 levels)
Targets: 1 loaded firearm
Duration: instantaneous
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
This spell causes ammunition already loaded into the target firearm is ruined with moisture. Any attempt to fire that ammunition fails, with no chance for misfire, and the user must then take a full-round action to clear the weapon before reloading and firing it. If aware of this spell's effect prior to firing the altered ammunition (a DC 16 Spellcraft check to identify the spell being cast or similar effect), the firearm's user can spend a standard action to clear the altered ammunition from the firearm. Doing so destroys that ammunition.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Dark-Light
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S, M/DF (a pinch of Darklands earth)
Range: medium (100 ft. + 10 ft./level)
Area: 20-ft.-radius burst
Targets: living creatures without light sensitivity
Duration: instantaneous
Saving Throw: Fortitude partial Spell Resistance: yes
"""
You evoke a powerful light that affects all sighted creatures that do not posses light sensitivity. Those that succeed on their saves are dazzled for 1 round per level; those who fail are blinded for the same duration.
Source: Kobolds Of Golarion
Darkvision is the extraordinary ability to see with no light source at all, out to a range specified for the creature. Darkvision is black-and-white only (colors cannot be discerned). It does not allow characters to see anything that they could not see otherwise—[[Invisible]] objects are still invisible, and illusions are still visible as what they seem to be. Likewise, darkvision subjects a creature to [[Gaze]] attacks normally. The presence of light does not spoil darkvision.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Dawn
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
abjuration
1 swift action V
Range: 15 ft.
Targets: all creatures in 15 ft.-radius burst centered on you
Duration: instantaneous
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
All sleeping creatures in the affected area awaken. Those who are unconscious because of nonlethal damage wake up and are staggered. This spell does not affect dying creatures.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Daylight
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S
Range: touch
Targets: object touched
Duration: 10 min./level (D)
Saving Throw: none Spell Resistance: no
"""
You touch an object when you cast this spell, causing the object to shed bright light in a 60-foot radius. This illumination increases the light level for an additional 60 feet by one step (darkness becomes dim light, dim light becomes normal light, and normal light becomes bright light). Creatures that take penalties in bright light take them while within the 60-foot radius of this magical light. Despite its name, this spell is not the equivalent of daylight for the purposes of creatures that are damaged or destroyed by such light. If daylight is cast on a small object that is then placed inside or under a light-proof covering, the spell's effects are blocked until the covering is removed. Daylight brought into an area of magical darkness (or vice versa) is temporarily negated, so that the otherwise prevailing light conditions exist in the overlapping areas of effect. Daylight counters or dispels any darkness spell of equal or lower level, such as darkness.
Source: PFRPG Core
The creature is unable to see well because of over-stimulation of the eyes. A dazzled creature takes a –1 penalty on attack rolls and sight-based [[Perception]] checks.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Dead Eye's Arrow
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
evocation
1 standard action V, S, M (one arrow)
Range: Medium (100 ft. + 10 ft./level) or see text
Effect: arrow of electricity
Duration: instantaneous or 1 round (see text)
Saving Throw: none Spell Resistance: yes
"""
You create an arrow made of crackling electricity, which you may use for one of two effects. Attack: You may throw the arrow up to Medium range or fire it from a bow up to the bow's maximum range. Either use is a ranged touch attack. The arrow deals 1d6 points of electricity damage + 1 point per level (maximum +5). Beacon: You throw or fire the arrow straight up. When it reaches maximum range or a solid surface (such as the roof of a cave) it explodes in a peal of thunder and forms a forked bolt of electricity resembling Erastil's holy symbol, which lingers for 1 round. The thunder and lightning are as loud and bright as natural thunder and lightning, but they do not harm any nearby creatures.
Source: Inner Sea Gods
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Deadeye's Lore
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 round V, S
Range: personal
Targets: you
Duration: 1 hour/level
Saving Throw: Spell Resistance:
"""
While subject to this spell, you take upon yourself the mantle of the hunter, channeling the insights of the spirits of the wild. You gain a +4 sacred bonus on all Survival checks for the duration of the spell, and you do not have to move at half your speed while traveling through the wilderness or while tracking.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Decompose Corpse
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
necromancy
1 standard action V, S, M (a pinch of dried toadstool)
Range: touch
Targets: one corpse or corporeal undead
Duration: instantaneous or 1 minute; see text
Saving Throw: Fortitude negates (object) Spell Resistance: yes (object)
"""
Using this spell, the caster rapidly decomposes the flesh from a single corpse of size Huge or smaller, leaving behind a perfectly cleaned skeleton. If it is cast on a non-skeletal corporeal undead, the creature takes a -2 penalty on all rolls and to its Armor Class and CMD for 1 minute.
Source: Ultimate Magic
Defend (DC 20) The animal defends you (or is ready to defend you if no threat is present), even without any command being given. Alternatively, you can command the animal to defend a specific other character.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Defoliate
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
necromancy
1 standard action V, S, M (a locust)
Range: close (25 ft. + 5 ft./2 levels)
Area: see text
Targets: see text
Duration: instantaneous
Saving Throw: none Spell Resistance: yes
"""
You hurl a tiny ball of negative energy, destroying plant life either in a line 60 feet long or a 10-foot-radius spread. This effect removes the cover and concealment provided by trees and undergrowth, eliminates the movement penalties associated with undergrowth, and so forth. You may also target a single plant creature with this spell. You must succeed on a ranged touch attack to hit your target. An affected plant creature takes 2d8 points of damage.
Source: Sargava
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Delay Disease
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (healing)
1 standard action V, S, DF
Range: touch
Targets: creature touched
Duration: 1 day
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
The target becomes temporarily immune to disease. Any disease to which it is exposed during the spell's duration does not affect the target until the spell's duration has expired. If the target is currently infected with a disease, you must make a caster level check against the disease's DC to suspend it for the duration of the spell; otherwise, that disease affects the target normally. Delay disease does not cure any damage a disease may have already done.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Delay Poison
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (healing)
1 standard action V, S, DF
Range: touch
Targets: creature touched
Duration: 1 hour/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
The subject becomes temporarily immune to poison. Any poison in its system or any poison to which it is exposed during the spell's duration does not affect the subject until the spell's duration has expired. Delay poison does not cure any damage that poison may have already done.
Source: PFRPG Core
Deliver (DC 15): The animal takes an object (one you or an ally gives it, or one that it recovers with the fetch trick) to a place or person you indicate. If you indicate a place, the animal drops the item and returns to you. If you indicate a person, the animal stays adjacent to the person until the item is taken. (Retrieving an item from an animal using the deliver trick is a move action.)
Demolish (DC 15): The companion can be commanded to attack and damage objects and structures. A companion must know the attack trick before it can be taught the demolish trick, and the companion must be trained to attack creatures of all types. The companion’s handler can direct it either to make natural attacks against the object in question or to make a Strength check to attempt to break it (if applicable).
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Depilate
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
necromancy
1 round S, M (a sliver of cow's tongue)
Range: medium (100 ft. + 10 ft./level)
Targets: one creature with hair or fur
Duration: instantaneous
Saving Throw: Will negates Spell Resistance: yes
"""
This simple jinx causes a target's hair or fur to fall out in patchy clumps, leaving the creature disheveled and less commanding. A jinxed creature takes a -2 penalty on all Diplomacy, Intimidate, and Perform checks until the hair begins to regrow 1 week later, or until the damage can be concealed with a successful Disguise or Heal check (the DC is equal to the original save DC of the spell). A successful break enchantment, remove curse, or similar effect instantly regrows the target's hair or fur and removes the spell's effects.
Source: Blood Of The Beast
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Detect Aberration
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, S
Range: long (400 ft. + 40 ft./level)
Area: cone-shaped emanation
Duration: concentration, up to 10 minutes/level (D)
Saving Throw: none Spell Resistance: no
"""
This spell functions like detect animals or plants, except it detects creatures of the aberration type.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Detect Animals or Plants
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, S
Range: long (400 ft. + 40 ft./level)
Area: cone-shaped emanation
Duration: concentration, up to 10 min./level
Saving Throw: none Spell Resistance: no
"""
You can detect a particular kind of animal or plant in a cone emanating out from you in whatever direction you face. You must think of a kind of animal or plant when using the spell, but you can change the animal or plant kind each round. The amount of information revealed depends on how long you search a particular area or focus on a specific kind of animal or plant. 1st Round: Presence or absence of that kind of animal or plant in the area. 2nd Round: Number of individuals of the specified kind in the area and the condition of the healthiest specimen. 3rd Round: The condition (see below) and location of each individual present. If an animal or a plant is outside your line of sight, then you discern its direction but not its exact location. Conditions: For purposes of this spell, the categories of condition are as follows: Normal: Has at least 90% of full normal hit points, free of disease. Fair: 30% to 90% of full normal hit points remaining. Poor: Less than 30% of full normal hit points remaining, afflicted with a disease, or suffering from a debilitating injury. Weak: 0 or fewer hit points remaining, afflicted with a disease that has reduced an ability score to 5 or less, or crippled. If a creature falls into more than one category, the spell indicates the weaker of the two. Each round you can turn to detect a kind of animal or plant in a new area. The spell can penetrate barriers, but 1 foot of stone, 1 inch of common metal, a thin sheet of lead, or 3 feet of wood or dirt blocks it.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Detect Magic
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
divination
1 standard action V, S
Range: 60 ft.
Area: cone-shaped emanation
Duration: concentration, up to 1 min./level
Saving Throw: none Spell Resistance: no
"""
You detect magical auras. The amount of information revealed depends on how long you study a particular area or subject. 1st Round: Presence or absence of magical auras. 2nd Round: Number of different magical auras and the power of the most potent aura. 3rd Round: The strength and location of each aura. If the items or creatures bearing the auras are in line of sight, you can make Knowledge (arcana) skill checks to determine the school of magic involved in each. (Make one check per aura: DC 15 + spell level, or 15 + 1/2 caster level for a nonspell effect.) If the aura emanates from a magic item, you can attempt to identify its properties (see Spellcraft). Magical areas, multiple types of magic, or strong local magical emanations may distort or conceal weaker auras. Aura Strength: An aura's power depends on a spell's functioning spell level or an item's caster level; see the accompanying table. If an aura falls into more than one category, detect magic indicates the stronger of the two. Spell or Object Aura Power Faint Moderate Strong Overwhelming Functioning spell (spell level) 3rd or lower 4th-6th 7th-9th 10th+ (deity-level) Magic item (caster level) 5th or lower 6th-11th 12th-20th 21st+ (artifact) Lingering Aura: A magical aura lingers after its original source dissipates (in the case of a spell) or is destroyed (in the case of a magic item). If detect magic is cast and directed at such a location, the spell indicates an aura strength of dim (even weaker than a faint aura). How long the aura lingers at this dim level depends on its original power: Original Strength Duration of Lingering Aura Faint 1d6 rounds Moderate 1d6 minutes Strong 1d6x10 minutes Overwhelming 1d6 days Outsiders and elementals are not magical in themselves, but if they are summoned, the conjuration spell registers. Each round, you can turn to detect magic in a new area. The spell can penetrate barriers, but 1 foot of stone, 1 inch of common metal, a thin sheet of lead, or 3 feet of wood or dirt blocks it. Detect magic can be made permanent with a permanency spell.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Detect Poison
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
divination
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Area: one creature, one object, or a 5-ft. cube
Targets: one creature, one object, or a 5-ft. cube
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
You determine whether a creature, object, or area has been poisoned or is poisonous. You can determine the exact type of poison with a DC 20 Wisdom check. A character with the Craft (alchemy) skill may try a DC 20 Craft (alchemy) check if the Wisdom check fails, or may try the Craft (alchemy) check prior to the Wisdom check. The spell can penetrate barriers, but 1 foot of stone, 1 inch of common metal, a thin sheet of lead, or 3 feet of wood or dirt blocks it.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Detect Radiation
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, S
Range: 120 ft.
Area: spherical emanation, centered on you
Duration: 10 minute/level
Saving Throw: none Spell Resistance: no
"""
You detect radiation in the surrounding area. You see radioactive auras as a glowing green shimmer in the air that emanates from radioactive objects; the brighter and more intense the green, the more powerful the radioactivity. This glow does not provide illumination or allow you to see in darkness, apart from being able to see the glow itself. The spell can penetrate barriers, but 3 feet of dirt or wood, 1 foot of stone, 1 inch of common metal, or a thin sheet of lead blocks it-although radiation can seep into such barriers, causing them to become radioactive (and thus visible to the spell) in time.
Source: Technology Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Detect Snares and Pits
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, S
Range: 60 ft.
Area: cone-shaped emanation
Duration: concentration, up to 10 min./level
Saving Throw: none Spell Resistance: no
"""
You can detect simple pits, deadfalls, and snares as well as mechanical traps constructed of natural materials. The spell does not detect complex traps, including trapdoor traps. Detect snares and pits does detect certain natural hazards—quicksand (a snare), a sinkhole (a pit), or unsafe walls of natural rock (a deadfall). It does not reveal other potentially dangerous conditions. The spell does not detect magic traps (except those that operate by pit, deadfall, or snaring; see the spell snare), nor mechanically complex ones, nor those that have been rendered safe or inactive. The amount of information revealed depends on how long you study a particular area. 1st Round: Presence or absence of hazards. 2nd Round: Number of hazards and the location of each. If a hazard is outside your line of sight, then you discern its direction but not its exact location. Each Additional Round: The general type and trigger for one particular hazard closely examined by you. Each round, you can turn to examine a new area. The spell can penetrate barriers, but 1 foot of stone, 1 inch of common metal, a thin sheet of lead, or 3 feet of wood or dirt blocks it.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Detect The Faithful
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, S, DF
Range: 60 ft.
Area: cone-shaped emanation
Duration: concentration, up to 1 minute/level (D)
Saving Throw: none Spell Resistance: no
"""
You can detect other worshipers of your deity (mortal worshipers, outsider servants, and so on). The amount of information revealed depends on how long you focus on a particular area or subject. 1st Round: Presence or absence of the faithful. 2nd Round: Number of individual faithful in the area. 3rd Round: The exact location of each worshiper. If a fellow worshiper is outside your line of sight, then you discern his direction but not his exact location. Each round, you can rotate to detect worshipers in a new area. The spell can penetrate barriers, but a sheet of lead, 1 foot of stone, 1 inch of common metal, or 3 feet of wood or dirt blocks it. A creature's personal interpretation of its beliefs determines whether or not it is of the same faith as you-hence heretics and splinter cultists of your deity still count as worshipers of that deity. Furthermore, since the spell picks up a creature's current beliefs and feelings, a creature actively pretending to be a member of the same faith also appears to the spell to be a member. Thus, the spell is still useful in locating potential hidden members of the same faith among the general populace, but on its own, it doesn't weed out spies.
Source: Ultimate Intrigue
Detect (DC 25): The animal is trained to seek out the smells of air currents, alchemical items and poisons, unusual noises or echoes, and other common elements that signify the presence of potential dangers or secret passages. When commanded, the animal uses its Perception skill to try to pinpoint the source of anything that strikes it as out of the ordinary about a room or location. Note that because the animal is not intelligent, any number of doors, scents, strange mechanisms, or unfamiliar objects might catch the animal’s attention, and it cannot attempt the same Perception check more than once in this way.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Determine Depth
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 standard action V, S
Range: touch
Targets: solid surface touched
Duration: concentration, up to 1 round/level (D)
Saving Throw: none Spell Resistance: no
"""
With a touch, you can determine the exact thickness of a wall, ceiling, or other solid barrier, measuring from the point you are touching to the direct opposite side of the barrier in a straight line. You can only detect depths or widths of up to 10 feet per caster level (maximum 200 feet at 20th level); amounts in excess of this limit are detected as being the maximum you are able to detect. So, for example, a 5th-level wizard using this spell on a 60-foot-thick wall would detect that the wall is 50 feet thick. Determine depth can be used on earthen, plaster, stone, or wooden surfaces, but not on walls made of metal or other, harder materials. This spell is useful to casters who want to get an idea of their surroundings, and as a preliminary measure to casting spells such as passwall or dimension door.
Source: Dungeoneers Handbook
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Detoxify
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (a dandelion stem)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 10 minutes/level
Saving Throw: Fortitude negates Spell Resistance: yes
"""
You remove a creature's ability to poison others, whether inherent or via poisoned weapons. Whenever an affected creature would inflict poison with an attack, spell, or other method (including auras and other constant methods), that poison is automatically neutralized. This does not grant the subject of the spell any resistance to poison itself.
Source: Adventurer's Guide
''Devotion''
An animal companion gains a +4 morale bonus on Will saves against enchantment spells and effects.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Diagnose Disease
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Area: one creature, one object, or a 5-ft. cube
Targets: one creature, one object, or a 5-ft. cube
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
You determine whether a creature, object, or area carries any sort of disease or infestation (including molds, slimes, and similar hazards), or any exceptional or supernatural effects causing the sickened or nauseated effects. If there is disease present, you know what disease it is and its effects. If the target is a creature, you gain a +4 bonus on Heal checks to treat the creature's disease. The spell can penetrate many barriers, but 1 foot of stone, 1 inch of common metal, a thin sheet of lead, or 3 feet of wood or dirt blocks it.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Diminish Plants
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: see text
Area: see text
Targets: see text
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
This spell has two versions. Prune Growth: This version of the spell causes normal vegetation within long range (400 feet + 40 feet per level) to shrink to about one-third normal size, becoming untangled and less bushy. The affected vegetation appears to have been carefully pruned and trimmed. This version of diminish plants automatically dispels any spells or effects that enhance plants, such as entangle, plant growth, and wall of thorns. At your option, the area can be a 100-foot-radius circle, a 150-foot-radius semicircle, or a 200-foot-radius quarter-circle. You may also designate portions of the area that are not affected. Stunt Growth: This version of the spell targets all normal plants within a range of 1/2 mile, reducing their potential productivity over the course of the following year to half normal. This spell has no effect on plant creatures.
Source: PFRPG Core
You can use this skill to persuade others to agree with your arguments, to resolve differences, and to gather valuable information or rumors from people. This skill is also used to negotiate conflicts by using the proper etiquette and manners suitable to the problem.
!! Common Uses
!! Gather Information
You can use Diplomacy to gather information about a specific topic or individual. To do this, you must spend at least 1d4 hours canvassing people at local taverns, markets, and gathering places. The DC of this check depends on the obscurity of the information sought, but for most commonly known facts or rumors it is 10. For obscure or secret knowledge, the DC might increase to 20 or higher. The GM might rule that some topics are simply unknown to common folk.
''Retry?'' Yes. You can retry Diplomacy checks made to gather information.
!! Influence Attitude
You can change the initial attitudes of nonplayer characters with a successful check. The DC of this check depends on the creature’s starting attitude toward you, adjusted by its Charisma modifier.
''Succeed''– If you succeed, the character’s attitude toward you is improved by one step. For every 5 by which your check result exceeds the DC, the character’s attitude toward you increases by one additional step. A creature’s attitude cannot be shifted more than two steps up in this way, although the GM can override this rule in some situations.
''Fail''– If you fail the check by 4 or less, the character’s attitude toward you is unchanged. If you fail by 5 or more, the character’s attitude toward you is decreased by one step.
You cannot use Diplomacy against a creature that does not understand you or has an Intelligence of 3 or less. Diplomacy is generally ineffective in combat and against creatures that intend to harm you or your allies in the immediate future. Any attitude shift caused through Diplomacy generally lasts for 1d4 hours but can last much longer or shorter depending upon the situation (GM discretion).
''Retry?'' You cannot use Diplomacy to influence a given creature’s attitude more than once in a 24 hour period. If a request is refused, the result does not change with additional checks, although other requests might be made.
|!Starting Attitude | !Diplomacy DC |
|Hostile | 25+ creature’s Cha Modifier |
|Unfriendly | 20+ creature’s Cha Modifier |
|Indifferent | 15+ creature’s Cha Modifier |
|Friendly | 10+ creature’s Cha Modifier |
|Helpful | 0+ creature’s Cha Modifier |
!! Make Request
If a creature’s attitude toward you is at least indifferent, you can make requests of the creature. This is an additional Diplomacy check, using the creature’s current attitude to determine the base DC, with one of the following modifiers. Once a creature’s attitude has shifted to helpful, the creature gives in to most requests without a check, unless the request is against its nature or puts it in serious peril. Some requests automatically fail if the request goes against the creature’s values or its nature, subject to GM discretion.
|!Request | !Diplomacy Modifier |
|Give simple advice or directions | –5 |
|Give detailed advice | +0 |
|Give simple aid | +0 |
|Reveal an unimportant secret | +5 |
|Give lengthy or complicated aid | +5 |
|Give dangerous aid | +10 |
|Reveal secret knowledge | +10 or more |
|Give aid that could result in punishment | +15 or more |
|Additional requests | +5 per request |
!! Suggest Course of Action
You can use Bluff and Diplomacy together to make a request of a creature, without it even realizing you have made the request.
''Check'': You can gradually coax a target into thinking a suggestion is entirely its own idea, making the creature more likely to act on the idea than if you had suggested it outright. You discuss topics subtly relevant to the request, asking leading questions and narrowing the scope of the conversation so that the target eventually decides to take a specific action you have led it to.
You first attempt a Bluff check to convince the target that your request was actually its idea. This is always treated as far-fetched circumstances, resulting in a –10 penalty on the check. If successful, you then attempt a Diplomacy check to make the request of the creature, treating its attitude toward you as indifferent for this single request (regardless of its actual attitude).
''Action'': Planting a notion and then coaxing a target into suggesting the notion himself each require at least 1 minute of continuous interaction. This can be difficult to arrange with a hostile or unfriendly creature.
Action Summary
'' Gather Information'': Using Diplomacy to gather information takes 1d4 hours of work, searching for rumors and informants.
'' Influence Attitude'': Using Diplomacy to influence a creature’s attitude takes 1 minute of continuous interaction.
''Make Request'': Making a request of a creature takes 1 or more rounds of interaction, depending upon the complexity of the request.
''Suggest Course of Action'': at least 1 minute of continuous interaction.
!!Modifiers
''Feats ''
If you have the Persuasive feat, you gain a +2 bonus on Diplomacy checks. If you have 10 or more ranks in Diplomacy, the bonus increases to +4.
! Dire Bat
|N Large animal |
|''Init'' +2 ''Senses'' [[Blindsense]] 40 ft ''Perception'' +12|
|!Defense |
|''AC'' 14, touch 11, flat-footed 12 |
|''hp'' 22 (4d8+4) |
|''Fort'' +5, ''Ref'' +6, ''Will'' +3 |
|!Offense |
|''Speed'' 20 ft., fly 40 ft. (good) |
|''Melee'' bite +5 (1d8+4) |
|''Space'' 10, ''Reach'' 5 |
|!Statistics |
|''Str'' 17, ''Dex'' 15, ''Con'' 13, ''Int'' 2, ''Wis'' 14, ''Cha'' 6 |
|''Base Attack'' +3, ''CMB'' +7 , ''CMD'' 19 |
|''Feats'' Alertness, Stealthy |
|''Skills'' Fly +9, Perception +12, Stealth +4 |
|''Racial Modifiers'' +4 Perception when using blindsense |
|!Special Abilities |
The dire bat is usually found lairing in desolate areas, resting in caves or other secluded areas during the day and taking to the skies in search of prey at night. This immense creature has an average wingspan of 15 feet and weighs roughly 200 pounds.
! Dire Rat
|N [[Small|Size]] [[animal|Animal]]|
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +4|
|!Defense |
|''AC'' 14, touch 14, flat-footed 11 |
|''hp'' 5 (1d8+1) |
|''Fort'' +3, ''Ref'' +5, ''Will'' +1 |
|!Offense |
|''Speed'' 40 ft., climb 20 ft., swim 20 ft. |
|''Melee'' bite +1 (1d4 plus disease) |
|''Special Attacks'' [[Disease]] |
|!Statistics |
|''Str'' 10, ''Dex'' 17, ''Con'' 13, ''Int'' 2, ''Wis'' 13, ''Cha'' 4 |
|''Base Attack'' +0, ''CMB'' -1, ''CMD'' 12 (16 vs. [[Trip]]) |
|''Feats'' [[Skill Focus (Perception)|Skill Focus]] |
|''Skills'' [[Climb]] +11, [[Perception]] +4, [[Stealth]] +11, [[Swim]] +11 |
|''Racial Modifiers'' uses Dex to modify Climb and Swim |
|!Special Abilities |
|!''Disease'' (Ex) |
|Filth fever: Bite—injury; save Fort DC 11; onset 1d3 days; frequency 1/day; effect 1d3 Dex damage and 1d3 Con damage; cure 2 consecutive saves. The save DC is Constitution-based. |
Dire rats grow up to 2 feet long and weigh up to 25 pounds. They are common menaces in dungeons and city sewers alike.
You are skilled at disarming traps and opening locks. In addition, this skill lets you sabotage simple mechanical devices, such as catapults, wagon wheels, and doors.
Editor’s Note: In the table below we have attempted to organize the various tasks, DCs, and required actions/time to attempt in one table. If information is missing (such as the Take 10/20 columns) it simply means that the answer was unclear to d20pfsrd.com editors at this time. Consult the Core Rulebook or other official sources for more information.)
|!Device |!Time | !DC^^1^^ | !Take 10? | !Take 20? |!Example or Special Notes |
|Disable or rig simple device |1 round | 10 | | |Jam a lock |
|Disable or rig^^1^^ tricky device |1d4 rounds | 15^^1^^ | | |Sabotage a wagon wheel^^1^^ |
|Disable or rig^^1^^ difficult device |2d4 rounds | 20^^1^^ | | |Disable or reset a trap |
|Open a simple lock | |20/30 | Yes | Yes |Number after the slash is without using proper tools |
|Disable or rig^^1^^ extremely complex device |2d4 rounds | 251 | ||Disable or reset a complex trap, cleverly sabotage a clockwork device |
|Open an average lock | |25/35 | Yes | Yes |Number after the slash is without using proper tools |
|Disable a magic trap (such as a symbol spell) |varies | 25 + spell level^^2^^ | | |Only characters with the trapfinding class feature can disarm magic traps. |
|Open a good lock | |30/40 | Yes | Yes |Number after the slash is without using proper tools |
|Open an amazing lock | |40/50 | Yes | Yes |Number after the slash is without using proper tools |
|!With the Technologist Feat |<|<|<|<|<|
|Disable or arm an explosive |1 minute+ | 10 | Yes | No | |
|Disable electronic device or trigger |2d4 rounds | | | |Without an e-pick the attempt suffers a -5 penalty; failure to disable by 5+ triggers an explosive if such is being attempted |
"""
^^1^^ If you attempt to leave behind no trace of your tampering, add 5 to the DC.
^^2^^ See spell descriptions for specific details
"""
!! Common Uses
!! Disarm Trap or Device
When disarming a trap or other device, the Disable Device check is made secretly, so that you don’t necessarily know whether you’ve succeeded.
The DC depends on how tricky the device is. Disabling (or rigging or jamming) a fairly simple device has a DC of 10; more intricate and complex devices have higher DCs.
If the check succeeds, you disable the device. If it fails by 4 or less, you have failed but can try again. If you fail by 5 or more, something goes wrong. If the device is a trap, you spring it. If you’re attempting some sort of sabotage, you think the device is disabled, but it still works normally.
''Special ''
A rogue who beats a trap’s DC by 10 or more can study the trap, figure out how it works, and bypass it (along with her companions) without disarming it.
''Retry?'' You can retry checks made to disable traps if you miss the check by 4 or less, though you must be aware that you fail in order to try again.
!! Sabotage Mechanical Item
You also can rig simple devices such as saddles or wagon wheels to work normally for a while and then fail or fall off some time later (usually after 1d4 rounds or minutes of use
Open a Lock
The DC to open a lock depends on the lock’s quality: simple (DC 20), average (DC 25), good (DC 30), or superior (DC 40).
''Modifiers'': If you do not have a set of thieves’ tools, these DCs increase by 10.
''Retry?'' Yes. You can retry checks made to open locks.
|!Lock Quality | DC |
|Simple | 20 |
|Average | 25 |
|Good | 30 |
|Amazing | 40 |
''Action'': The amount of time needed to make a Disable Device check depends on the task:
''Simple Device'': Disabling a simple device takes 1 round and is a full-round action.
''Complex/Intricate Device'': An intricate or complex device requires 1d4 or 2d4 rounds. Attempting to open a lock is a full-round action.
!! Modifiers
''Feats ''
If you have the Deft Hands feat, you get a +2 bonus on Disable Device skill checks. If you have 10 or more ranks in Disable Device, the bonus increases to +4.
!! Magic Traps
Characters with the trapfinding class feature can disarm magic traps. A magic trap generally has a DC of 25 + the spell level of the magic used to create it.
The spells fire trap, glyph of warding, symbol, and teleportation circle also create traps that a rogue can disarm with a successful Disable Device check. Spike growth and spike stones, however, create magic traps against which Disable Device checks do not succeed. See the individual spell descriptions for details.
[[See Also Disarm Maneuver|Disarm Maneuver]]
When you use a disarm weapon, you get a +2 bonus on Combat Maneuver Checks to disarm an enemy.
You can attempt to disarm your opponent in place of a melee attack. If you do not have the Improved Disarm feat, or a similar ability, attempting to disarm a foe provokes an attack of opportunity from the target of your maneuver. Attempting to disarm a foe while unarmed imposes a –4 penalty on the attack.
If your attack is successful, your target drops one item it is carrying of your choice (even if the item is wielded with two hands). If your attack exceeds the CMD of the target by 10 or more, the target drops the items it is carrying in both hands (maximum two items if the target has more than two hands). If your attack fails by 10 or more, you drop the weapon that you were using to attempt the disarm. If you successfully disarm your opponent without using a weapon, you may automatically pick up the item dropped.
!! Disarm Weapons
''If you want to make a disarm combat maneuver, do you have to use a weapon with disarm special feature?''
''No''. When making a disarm combat maneuver, you don’t have to use a weapon with the disarm special feature. When you use a disarm weapon, you get a +2 bonus on Combat Maneuver Checks to disarm an enemy.
A creature with this ability causes disease in those it contacts. The effects of the disease, including its save, frequency, and cure, are included in the creature’s description. The saving throw to negate the disease is usually a Fort save (DC 10 + 1/2 the infecting creature’s racial HD + the creature’s Con modifier; the exact DC is given in the creature’s descriptive text). Disease can be removed through [[Remove Disease|Remove Disease Spell]] and similar effects.
Format: Disease Name (Ex) Bite—injury; save Fort DC 15, onset 1d3 days, frequency 1 day, effect 1 Con damage, cure 2 consecutive saves; Location: Special Attacks and individual attacks.
You are skilled at changing your appearance.
!! Check
Your Disguise check result determines how good the disguise is, and it is opposed by others’ Perception check results. If you don’t draw any attention to yourself, others do not get to make Perception checks. If you come to the attention of people who are suspicious (such as a guard who is watching commoners walking through a city gate), it can be assumed that such observers are taking 10 on their Perception checks.
You get only one Disguise check per use of the skill, even if several people are making Perception checks against it. The Disguise check is made secretly, so that you can’t be sure how good the result is.
The effectiveness of your disguise depends in part on how much you’re attempting to change your appearance.
|!Disguise Check | !Modifier |
|Minor details only | +5 |
|Disguised as different gender^^1^^ | –2 |
|Disguised as different race^^1^^ | –2 |
|Disguised as different age category^^1^^ | –2^^2^^ |
|Disguised as different size category^^1^^ | -10 |
"""
^^1^^ These modifiers are cumulative; use any that apply.
^^2^^ Per step of difference between your actual age category and your disguised age category. The steps are: young (younger than adulthood), adulthood, middle age, old, and venerable.
"""
If you are impersonating a particular individual, those who know what that person looks like get a bonus on their Perception checks according to the table below. Furthermore, they are automatically considered to be suspicious of you, so opposed checks are always called for.
|!Familiarity | !Viewer’s Perception Check Bonus |
|Recognizes on sight | +4 |
|Friends or associates | +6 |
|Close friends | +8 |
|Intimate | +10 |
Usually, an individual makes a Perception check to see through your disguise immediately upon meeting you and every hour thereafter. If you casually meet many different creatures, each for a short time, check once per day or hour, using an average Perception modifier for the group.
''Action/Time''
Creating a disguise requires 1d3 × 10 minutes of work. Using magic (such as the disguise self spell) reduces this action to the time required to cast the spell or trigger the effect.
''Retry?'' Yes. You may try to redo a failed disguise, but once others know that a disguise was attempted, they’ll be more suspicious.
!! Modifiers
''Magic Alteration''
Magic that alters your form, such as alter self, disguise self, polymorph, or shapechange, grants you a +10 bonus on Disguise checks (see the individual spell descriptions). You must succeed on a Disguise check with a +10 bonus to duplicate the appearance of a specific individual using the veil spell. Divination magic that allows people to see through illusions (such as true seeing) does not penetrate a mundane disguise, but it can negate the magical component of a magically enhanced one.
''Magic Copies''
You must make a Disguise check when you cast a simulacrum spell to determine how good the likeness is.
''Feats''
If you have the Deceitful feat you get a +2 bonus on all Disguise skill checks. If you have 10 or more ranks in Disguise, the bonus increases to +4.
! Dog
|N [[Small|Size]] [[animal|Animal]]|
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +8|
|!Defense |
|''AC'' 13, touch 12, flat-footed 12 |
|''hp'' 6 (1d8+2) |
|''Fort'' +4, ''Ref'' +3, ''Will'' +1 |
|!Offense |
|''Speed'' 40 ft. |
|''Melee'' bite +2 (1d4+1) |
|!Statistics |
|''Str'' 13, ''Dex'' 13, ''Con'' 15, ''Int'' 2, ''Wis'' 12, ''Cha'' 6 |
|''Base Attack'' +0, ''CMB'' +0, ''CMD'' 11 (15 vs. [[Trip]]) |
|''Feats'' [[Skill Focus (Perception)|Skill Focus]] |
|''Skills'' [[Acrobatics]] +1 (+9 jumping), [[Perception]] +8, [[Survival]] +1 (+5 scent tracking) |
|''Racial Modifiers'' +4 Acrobatics when jumping, +4 Survival when tracking by scent |
|!Special Abilities |
The normal dog statistics presented here describe any small dog of about 20–50 pounds in weight. They can also be used for small wild canines such as coyotes, jackals, and feral dogs.
! Dolphin
|N [[Medium|Size]] [[animal|Animal]]|
|''Init'' +2 ''Senses'' [[Blindsight]] 120ft, [[Low-Light Vision]] ''Perception'' +9|
|!Defense |
|''AC'' 13, touch 12, flat-footed 11 |
|''hp'' 11 (2d8+2) |
|''Fort'' +4, ''Ref'' +5, ''Will'' +1 |
|!Offense |
|''Speed'' swim 80 ft. |
|''Melee'' slam +3 (1d4+1) |
|!Statistics |
|''Str'' 12, ''Dex'' 15, ''Con'' 13, ''Int'' 2, ''Wis'' 13, ''Cha'' 6 |
|''Base Attack'' +1, ''CMB'' +3, ''CMD'' 14 |
|''Feats'' Weapon Finesse |
|''Skills'' Perception +9, Swim +13 |
|''Racial Modifiers'' +4 Perception |
|''SQ'' hold breath |
|!Special Abilities |
|!''Hold Breath'' (Ex) |
|A dolphin can hold its breath for a number of minutes equal to 6 times its Constitution score before it risks drowning. |
Dolphins are social predators that hunt shallow seas and rivers in large family groups called pods. Sailors are fond of dolphins and frequently tell tales of dolphins saving drowning fishermen or killing sharks with blows from their powerful snouts.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Dominate Animal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
enchantment (compulsion) [mind-affecting]
1 round V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one animal
Duration: 1 round/level
Saving Throw: Will negates Spell Resistance: yes
"""
This spell allows you to enchant the targeted animal and direct it with simple commands such as "Attack," "Run," and "Fetch." Suicidal or self-destructive commands (including an order to attack a creature two or more size categories larger than the dominated animal) are simply ignored. Dominate animal establishes a mental link between you and the subject creature. The animal can be directed by silent mental command as long as it remains in range. You need not see the creature to control it. You do not receive direct sensory input from the creature, but you know what it is experiencing. Because you are directing the animal with your own intelligence, it may be able to undertake actions normally beyond its own comprehension. You need not concentrate exclusively on controlling the creature unless you are trying to direct it to do something it normally couldn't do. Changing your instructions or giving a dominated creature a new command is the equivalent of redirecting a spell, so it is a move action.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Dousing Rain
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, M/DF (a drop of water)
Range: medium (100 ft. + 10 ft./level)
Area: cylinder (10-ft. radius, 40 ft. high)
Duration: 1 round/level (D)
Saving Throw: none Spell Resistance: no
"""
With a beckoning gesture, you call forth a downpour of rain. For the duration of the spell, the following effects apply within the affected area. Nonmagical fires are automatically extinguished, and all creatures and objects in the area gain fire resistance 5. The conjured water is conductive, and whenever a doused creature takes electricity damage, it takes 1 additional point of electricity damage. At 6th, 12th, and 18th levels, the fire resistance increases by 5 and the additional electricity damage increases by 1 point.
Source: Villain Codex
Down (DC 15) The animal breaks off from combat or otherwise backs down. An animal that doesn’t know this trick continues to fight until it must flee (due to injury, a fear effect, or the like) or its opponent is defeated.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Downdraft
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S, M (balsa wood bird carving, crushed underfoot)
Range: long (400 ft. + 40 ft./level)
Area: cylinder (20-ft. radius, 100 ft. high)
Duration: instantaneous
Saving Throw: Reflex partial; see text Spell Resistance: yes
"""
Downdraft sends a column of turbulent air rushing towards the earth. Airborne creatures caught in the area of a downdraft must succeed on a Reflex save or immediately plummet up to 100 feet straight downward, taking falling damage (1d6 points of damage per 10 feet fallen) if the downdraft makes them hit the ground or collide with an object. Those who succeed on the Reflex save plummet only 50 feet. Creatures already on the ground must succeed on a Reflex save or be knocked prone by the spell.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Dragon Turtle Shell
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
1 standard action V, S, M (a piece of turtle shell)
Range: personal
Targets: you
Duration: 1 round/level
Saving Throw: Spell Resistance:
"""
When you are struck by an opponent's natural attacks, the damage is resolved as if the attack came from a creature one size smaller per 5 caster levels (maximum of four size categories smaller at CL 20th). Refer to Table 3-1 in the Pathfinder RPG Bestiary to determine an attack's altered base damage. If the creature's natural attack deals nonstandard damage, refer instead to the Improved Natural Attack feat on page 315 of the Bestiary. It is not possible to reduce the base damage of a creature's natural attack below 1d2 with this spell.
Source: Dragonslayer's Handbook
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Drain Poison
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M/DF (the fang of a poisonous creature)
Range: touch
Targets: one weapon or a single piece of ammunition
Duration: 24 hours
Saving Throw: none Spell Resistance: no
"""
By touching a weapon against the fang of a poisonous creature and casting this spell, you drain 1 dose of the creature's poison, which is magically applied to your weapon without risk of poisoning yourself. The poison remains on the weapon until either it strikes a creature, you touch the weapon, or you wipe off the poison. It otherwise functions exactly like a dose of a manufactured poison applied to a weapon. You can use this spell with natural as well as manufactured weapons. This spell does not prevent you from exposing yourself to the poison if you roll a natural 1 on an attack roll while the poison is applied to your weapon. The spell has no effect if the creature whose fang is touched is a summoned creature, if it has been dead for more than 1 minute, or if its poison has already been extracted from it.
Source: Dirty Tactics Toolbox
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Dream Feast
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation)
1 standard action V, S, DF
Range: touch
Targets: creature touched
Duration: instantaneous
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The next time the target sleeps (within the next 8 hours), she dreams of a rich feast with her favorite foods and drinks. When she awakens, she is sated as if she had eaten a nutritious meal, regardless of what she dreamed she ate. The target must sleep for at least 1 hour to gain the benefits of this spell. Being awakened during this period interrupts the spell and cancels its effects. If you sleep with this spell prepared, you may automatically expend it while you sleep to gain the spell's benefit. This expenditure does not count as spellcasting for the purpose of determining available spell slots (you could go to sleep at midnight, expend this spell during an 8-hour period of sleep, and still prepare your full allotment of spells in the morning).
Source: Inner Sea Gods
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Dreams of the Eternal Sleeper
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 hour V, S, DF
Range: personal
Targets: you
Duration: 24 hours
Saving Throw: Spell Resistance:
"""
The clerics and druids of Ulutiu gain divine guidance and edicts from experiencing the dreams of Ulutiu while they sleep. The caster casts this spell before going to sleep and it will influence their dreams, allowing the glimpses into the dreams of the Lord in the Ice. The dreams are always vague and meandering, so this spell doesn’t grant any direct guidance such as Augury or Divination. The use of this spell requires arduous ritual to get into the right mindset; either fasting, psychedelic drugs, self-mutilation or whatever the caster finds works best. The methods used tend to be different for each caster. The first time the caster casts this spell, it causes 2d6 CON damage from the extreme toll taken by the caster’s body to reach the higher plane of the Deity and the caster is exhausted until they next time they rest. It has been known to kill initiates and beginning devotees. Once the correct way of reaching Ulutiu’s dreams has been found, subsequent castings only cause 1d6 CON damage and the caster is fatigued until they rest. This spell is usually not cast more than one a week and more experienced devotees relieve this abuse with Lesser Restoration. When casting this spell, the caster chooses a specific endeavor of which they wish to see a vision and ask for Ulutiu’s help. The effect of the dream visions gives a bonus to any skill used in the endeavor for the next 24 hours. The GM should arbitrate what constitutes a single endeavor. For example, “infiltrating the enemies’ stronghold” may require three skill checks, Stealth, Disable Device and Perception for watching for guards. The endeavor should be something that can be succinctly described and have a definite goal. For the next 24 hours, whenever caster attempts a skill check to complete the endeavor, they gain an insight bonus on the check equal to 1/2 your caster level (minimum 1). They get an addition +2 Bonus if the use of the skill relates to the Faith of Ulutiu or life on the Glacier. The use of the skill may take longer than 24 hours, such as a week’s worth of progress while using the Craft skill, as long as the work is begun within 24 hours. Typical skills chosen for this spell are Knowledge skills, Craft, Survival or Spellcheck since the help provided by the dreams is generally informative, but it could help in other situations like getting visions of a particularly easy to navigate path to help with a Climb check to scale a mountain. If a particular endeavor requires more than one of the same kind of skill check, the GM may allow the use of the bonus on all of the checks, but the insight wears off after 24 hours. So for instance, in the case of climbing a mountain, the GM may rule that three successful Climb skill checks are required to get to the top. As long as all three are attempted within the 24 hours, then the GM may rule that all three checks benefit from the bonus from the spell.
Source: Homebrew
!! Druid Class
<$list filter="[tag[Druid]tag[Feature]sort[title]]"/>
<$list filter="[tag[Feature]tag[Druid]!tag[Domain]sort[title]]">
<$transclude mode="block"/>
</$list>
! Druid Spells
<<preparedSpellCards Druid 3>>
! Druid Spells
<table>
<tr>
<td>
<table class="spellcard0">
<tr style="font-size: 30px;"><td>[[Detect Magic|Detect Magic Spell]]</td></tr>
<tr style="font-size: 24px;"><td>SL 0</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
</table>
</td>
<td>
<table class="spellcard0">
<tr style="font-size: 30px;"><td>[[Guidance|Guidance Spell]]</td></tr>
<tr style="font-size: 24px;"><td>SL 0</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
</table>
</td>
<td>
<table class="spellcard0">
<tr style="font-size: 30px;"><td>[[Light|Light Spell]]</td></tr>
<tr style="font-size: 24px;"><td>SL 0</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
</table>
</td>
</tr>
<tr>
<td>
<table class="spellcard0">
<tr style="font-size: 30px;"><td>[[Mending|Mending Spell]]</td></tr>
<tr style="font-size: 24px;"><td>SL 0</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
</table>
</td>
<td>
<table class="spellcardD">
<tr style="font-size: 30px;"><td>[[Frostbite|Frostbite Spell]]</td></tr>
<tr style="font-size: 24px;"><td>SL 1</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
</table>
</td>
<td>
<table class="spellcard1">
<tr style="font-size: 30px;"><td>[[Goodberry|Goodberry Spell]]</td></tr>
<tr style="font-size: 24px;"><td>SL 1</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
</table>
</td>
</tr>
<tr>
<td>
<table class="spellcard1">
<tr style="font-size: 30px;"><td>[[Ice Slick|Ice Slick Spell]]</td></tr>
<tr style="font-size: 24px;"><td>SL 1</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
</table>
</td>
<td>
<table class="spellcard1">
<tr style="font-size: 30px;"><td>[[Lesser Vigor|Lesser Vigor Spell]]</td></tr>
<tr style="font-size: 24px;"><td>SL 1</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
</table>
</td>
<td>
<table class="spellcard1">
<tr style="font-size: 30px;"><td>[[Snowsight|Snowsight Spell]]</td></tr>
<tr style="font-size: 24px;"><td>SL 1</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
</table>
</td>
</tr>
<tr>
<td>
<table class="spellcardD">
<tr style="font-size: 30px;"><td>[[Chill Metal|Chill Metal Spell]]</td></tr>
<tr style="font-size: 24px;"><td>SL 2</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
</table>
</td>
<td>
<table class="spellcard2">
<tr style="font-size: 30px;"><td>[[Frostbreath|Lesser Vigor Spell]]</td></tr>
<tr style="font-size: 24px;"><td>SL 2</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
</table>
</td>
<td>
<table class="spellcard2">
<tr style="font-size: 30px;"><td>[[Obscuring Snow|Obscuring Snow Spell]]</td></tr>
<tr style="font-size: 24px;"><td>SL 2</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
<tr><td>Some stuff</td></tr>
</table>
</td>
</tr>
</table>
!! [[Druid Spellcasting]]
{{Druid Spells Table}}
!!Spells
A druid casts divine spells, which are drawn from the druid spell list. Her Diety's alignment restricts her from casting certain spells opposed to her moral or ethical beliefs: Chaotic Spells. A druid must choose and prepare her spells in advance.
To prepare or cast a spell, the druid must have a Wisdom score equal to at least 10 + the spell level. The Difficulty Class for a saving throw against a druid’s spell is 10 + the spell level + the druid’s Wisdom modifier.
Like other spellcasters, a druid can cast only a certain number of spells of each spell level per day. Her base daily spell allotment is given on Table: Druid. In addition, she receives bonus spells per day if she has a high Wisdom score.
A druid gains one domain spell slot for each level of druid spell she can cast, from 1st on up. Each day, a druid can prepare one of the spells from her domain in that slot. If a domain spell is not on the druid spell list, a druid can prepare it only in her domain spell slot. Domain spells cannot be used to cast spells spontaneously.
A druid must spend 1 hour each day in a trance-like meditation on the mysteries of nature to regain her daily allotment of spells. A druid may prepare and cast any spell on the druid spell list, provided that she can cast spells of that level, but she must choose which spells to prepare during her daily meditation.
!!Orisons (Sp)
Druids can prepare a number of orisons, or 0-level spells, each day. These spells are cast like any other spell, but they are not expended when cast and may be used again.
!!Spontaneous Casting
A druid can channel stored spell energy into summoning spells that she hasn’t prepared ahead of time. She can “lose” a prepared spell in order to cast any [[Summon Nature's Ally|Summon Nature's Ally I Spell]] spell of the same level or lower.
! Druid
!! Orisons
<$list filter="[tag[Spell]tag[Divine]field:spelllevel[0]sort[title]]"/>
!! 1st level Spells
<$list filter="[tag[Spell]tag[Divine]field:spelllevel[1]sort[title]]"/>
!! 2nd level Spells
<$list filter="[tag[Spell]tag[Divine]field:spelllevel[2]sort[title]]"/>
!! 3rd level Spells
<$list filter="[tag[Spell]tag[Divine]field:spelllevel[3]sort[title]]"/>
| ![[Druid Spellcasting]] |<|<|<|<|<|<|<|<|<|<|<|<|<|
|!|<|<| !Spells Prepared per Day |<|<|<|<|<|<|<|<|<|<|
|!Level|!Druid|!CL|!|!0th|!1st|!2nd|!3rd|!4th|!5th|!6th|!7th|!8th|!9th|
|1^^st^^| 1 | 1 |!| <<classDataLookup "Druid,SPD,1,0">> | <$calc><<classDataLookup "Druid,SPD,1,1">><<SPDModifier "WIS" "1">></$calc>+1 |||||||||
|2^^nd^^| 1 | 2 |!|||||||||||
|3^^rd^^| 2 | 3 |!| <<classDataLookup "Druid,SPD,2,0">> | <$calc><<classDataLookup "Druid,SPD,2,1">><<SPDModifier "WIS" "1">></$calc>+1 |||||||||
|4^^th^^| 3 | 4 |!| <<classDataLookup "Druid,SPD,3,0">> | <$calc><<classDataLookup "Druid,SPD,3,1">><<SPDModifier "WIS" "1">></$calc>+1 | <$calc><<classDataLookup "Druid,SPD,3,2">><<SPDModifier "WIS" "2">></$calc>+1 ||||||||
|5^^th^^| 4 | 5 |!| <<classDataLookup "Druid,SPD,4,0">> | <$calc><<classDataLookup "Druid,SPD,4,1">><<SPDModifier "WIS" "1">></$calc>+1 | <$calc><<classDataLookup "Druid,SPD,4,2">><<SPDModifier "WIS" "2">></$calc>+1 ||||||||
|6^^th^^| 5 | 6 |!| <<classDataLookup "Druid,SPD,5,0">> | <$calc><<classDataLookup "Druid,SPD,5,1">><<SPDModifier "WIS" "1">></$calc>+1 | <$calc><<classDataLookup "Druid,SPD,5,2">><<SPDModifier "WIS" "2">></$calc>+1 | <$calc><<classDataLookup "Druid,SPD,5,3">><<SPDModifier "WIS" "3">></$calc>+1 |||||||
| Bonus|<|<|<| +0 | <<SPDModifier "WIS" "1">> | <<SPDModifier "WIS" "2">> | <<SPDModifier "WIS" "3">> | <<SPDModifier "WIS" "4">> | <<SPDModifier "WIS" "5">> |||||f
! Eagle
|N Small animal|
|''Init'' +2 ''Senses'' [[Low-Light Vision]] ''Perception'' +10|
|!Defense |
|''AC'' 14, touch 13, flat-footed 12 |
|''hp'' 5 (1d8+1) |
|''Fort'' +3, ''Ref'' +4, ''Will'' +2 |
|!Offense |
|''Speed'' 10 ft., fly 80 ft. (average) |
|''Melee'' 2 talons +3 (1d4), bite +3 (1d4) |
|!Statistics |
|''Str'' 10, ''Dex'' 15, ''Con'' 12, ''Int'' 2, ''Wis'' 15, ''Cha'' 7 |
|''Base Attack'' +0, ''CMB'' +1, ''CMD'' 11 |
|''Feats'' Weapon Finesse |
|''Skills'' Fly +8, Perception +10 |
|''Racial Modifiers'' +8 Perception |
|!Special Abilities |
Among the most majestic of raptors, these predatory birds pluck fish from streams and lakes, drop down on rodents and small mammals in alpine meadows, and have even been known to pull young mountain goats from the assumed safety of their cliffs.
These creatures, like all birds of prey, have powerful clawed talons and sharp, hooked beaks perfect for tearing flesh. Their enhanced eyesight allows them to spot prey from great distances, and they typically hunt in wide circling patterns high above the ground.
Eagles typically build their massive nests in the tops of tall trees or among the rocky crags of steep cliffs. During breeding season, an eagle lays two eggs, but only one chick normally survives, as the stronger of the two usually kills and eats the weaker.
Eagles generally weigh between 8 and 15 pounds, with a wingspan of up to 7 feet, depending on the species.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Eagle Eye
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 minute V, S, DF
Range: long (400 ft. + 40 ft./level)
Effect: magical sensor
Duration: 1 minute/level (D)
Saving Throw: none Spell Resistance: no
"""
Eagle eye creates a magical sensor directly above you. The sensor can appear anywhere above you, to a maximum height equal to the spell's range. You can see from this vantage as if you were actually there, rotating your viewpoint 360 degrees. You perceive with your normal visual senses. A caster using eagle eye can easily see for a considerable distance. The spell does not penetrate any solid surface, although it is unaffected by foliage and the like.
Source: APG
Ulrik was born during a severe blizzard and due to a problem with the cord of life and the mother, he left exposed to cold for far too long. Most infants in that situation die, but Ulrik survived. Though, he was always small for a child.
Strange things would happen around him. Snow would errupt, even in doors, when he was angry or upset. Twice he survived exposure without losing any digits. Most of the tribe ignored the pecularities until an illness swept through the village. Then he was possessed by demons and the fault was all his. His parents begged for his life and instead of being killed outright, we was branded as a witch using an ice vine and then expelled.
The ice vine is a vine plant that radiates such extreme cold to survive on the glacier that its touch causes a freezing burn which the plants use to catch animals and provide much needed minerals for continued growth. A witch's arm is put into the middle of the vine, it's tendrils wrap around causing a helical scar going up the arm.
After he was expelled, the Icewalker Thedrin took Ulrik in and trained him in the Druidic arts.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Earth Tremor
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: up to 30 ft. (see text)
Area: 30-ft. line, 20-ft. cone-shaped spread, or 10-ft.-radius spread (see text)
Duration: instantaneous
Saving Throw: Reflex half (see text) Spell Resistance: no
"""
You strike the ground and unleash a tremor of seismic force, hurling up earth, rock, and sand. You choose whether the earth tremor affects a 30-foot line, a 20-foot cone-shaped spread, or a 10-foot-radius spread centered on you. The space you occupy is not affected by earth tremor. The area you choose becomes dense rubble that costs 2 squares of movement to enter. Dense rubble adds 5 to the DC of Acrobatics checks and adds 2 to the DC of Stealth checks. Creatures on the ground in the area take 1d4 points of bludgeoning damage per caster level you have (maximum 10d4) or half damage on a successful save. Medium or smaller creatures that fail their saves are knocked prone. This spell can be cast only on a surface of earth, sand, or stone. It has no effect if you are in a wooden or metal structure or if you are not touching the ground.
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Earthbind
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Targets: one creature
Duration: 1 minute/level (D)
Saving Throw: Fortitude negates Spell Resistance: yes
"""
You hinder the subject creature's ability to fly (whether through natural or magical means) for the duration of the spell. If the target fails its saving throw, its fly speed (if any) becomes 0 feet. An airborne creature subjected to this spell falls to the ground as if under the effect of a feather fall spell. Even if a new effect would grant the creature the ability to fly, that effect is suppressed for the duration of the earthbind spell.
Earthbind has no effect on other forms of movement, or even on effects that might grant airborne movement without granting fly speed (such as jumping or levitate or air walk spells).
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Easy Trail
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
1 standard action V, S
Range: 40 ft.
Area: 40-ft.-radius emanation centered on you
Duration: 1 hour/level (D)
Saving Throw: none Spell Resistance: yes
"""
Anyone in the area of the spell (including you) finds the undergrowth held aside while they pass. This effect essentially provides a trail through any kind of undergrowth, and you treat any trackless terrain as having a trail. Once the effect of the spell passes, the plants return to their normal shape. The DC to track anyone who traveled within the area of this spell increases by 5 (the equivalent of hiding the trail). This spell has no effect on plant creatures (that is, they aren't pushed or held aside by its effect).
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Echo
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
illusion (figment)
1 standard action S, F (a conch shell)
Range: close (25 ft. + 5 ft./2 levels) or long (400 ft. + 40 ft./level); see text
Area: one 10-ft. cube/level (S)
Duration: 1 round/level (D)
Saving Throw: Will disbelief (if interacted with) Spell Resistance: yes
"""
You cause a sound heard in the target area up to 1 round ago and lasting up to 1 round in duration to repeat at a regular interval. The original sound need not have come from the area, but it echoes from the target area at its original full volume. Any special effects of the sound are not duplicated by this spell. If the area is naturally prone to echoes, such as a space surrounded on at least two sides by cliffs or high river banks, the spell's range is long. Otherwise, the spell's range is close. You can concentrate as a standard action to alter the echo. You can change it to be any sound audible in the area within the last 1 round, move the apparent source of the sound within the area, or attempt a Bluff check to create a distraction to hide with a bonus equal to your caster level.
Source: Ultimate Wilderness
! Electric Eel
|N Small animal |
|''Init'' +1 ''Senses'' [[Low-Light Vision]] ''Perception'' +4|
|!Defense |
|''AC'' 15, touch 13, flat-footed 13 |
|''hp'' 17 (2d8+8) |
|''Fort'' +7, ''Ref'' +5, ''Will'' +0 |
|!Offense |
|''Speed'' 5 ft., swim 30 ft. |
|''Melee'' bite +3 (1d6+1) and tail -2 touch (1d6 electricity) |
|!Statistics |
|''Str'' 13, ''Dex'' 14, ''Con'' 19, ''Int'' 1, ''Wis'' 10, ''Cha'' 6 |
|''Base Attack'' +1, ''CMB'' +1 , ''CMD'' 13 (can't be [[Tripped|Trip]]) |
|''Feats'' Improved Initiative |
|''Skills'' Escape Artist +10, Perception +4, Stealth +10, Swim +9 |
|''Racial Modifiers'' +8 Escape Artist |
|!Special Abilities |
|!''Electricity'' (Ex) |
|An electric eel can produce a powerful jolt of electricity from its tail, delivering the jolt with a successful touch attack. On a critical hit, the creature struck must make a DC 15 Fortitude save or be stunned for 1d4 rounds. The save DC is Constitution-based. |
The electric eel is a curious fish that breathes air instead of water, yet certainly its most unusual characteristic is its ability to generate powerful jolts of electricity. An electric eel is 6 feet long and weighs 45 pounds.
Elemental Traits
An elemental is a being composed entirely from one of the four classical elements: air, earth, fire, or water.
An elemental has the following features.
Immunity to bleed, paralysis, poison, sleep effects, and stunning.
Not subject to critical hits or flanking. Does not take additional damage from precision-based attacks, such as sneak attack.
Proficient with natural weapons only, unless generally humanoid in form, in which case proficient with all simple weapons and any weapons mentioned in its entry.
Proficient with whatever type of armor (light, medium, or heavy) it is described as wearing, as well as all lighter types. Elementals not indicated as wearing armor are not proficient with armor. Elementals are proficient with shields if they are proficient with any form of armor.
Elementals do not breathe, eat, or sleep.
<$list filter="[tag[Elemental]sort[title]]" >
</$list>
[[Elemental Blast]] (//Sp//): At 9th level, you can unleash a blast of elemental power once per day. This 20-foot-radius burst does 1d6 points of cold damage per sorcerer level. Those caught in the area of your blast receive a Reflex save for half damage. Creatures that fail their saves gain vulnerability to cold until the end of your next turn. The DC of this save is equal to 10 + 1/2 your sorcerer level + your Charisma modifier. At 9th level, you can use this ability once per day. At 17th level, you can use this ability twice per day. At 20th level, you can use this ability three times per day. This power has a range of 60 feet.
!! [[Elemental Bloodline]]
The power of the elements resides in you, and at times you can hardly control its fury. This influence comes from an elemental outsider in your family history or a time when you or your relatives were exposed to a powerful elemental force.
!!Cold Elemental Bloodline (Water)
''Class Skill'': Knowledge (planes).
''Bonus Spells'': burning hands [cold] (3rd), scorching ray [cold] (5th), protection from energy (7th), elemental body I (9th), elemental body II (11th), elemental body III (13th), elemental body IV (15th), summon monster VIII (elementals only) (17th), elemental swarm (19th).
''Bonus Feats'': Dodge, Empower Spell, Great Fortitude, Improved Initiative, Lightning Reflexes, Power Attack, Skill Focus (Know Planes), Weapon Finesse.
[[Bloodline Arcana]]: Whenever you cast a spell that deals energy damage, you can change the type of damage to match the type of your bloodline. This also changes the spell’s type to match the type of your bloodline.
''Bloodline Powers'': One of the four elements infuses your being, and you can draw upon its power in times of need. At first level, you must select one of the four elements: air, earth, fire, or water. This choice cannot be changed. A number of your abilities grant resistances and deal damage based on your element.
|Element|Type|Movement|
|Water|Cold|Swim 60ft|
{{Elemental Ray}}
{{Elemental Resistance}}
{{Elemental Blast}}
{{Elemental Movement}}
{{Elemental Body}}
!!Bloodlines
Each sorcerer has a source of magic somewhere in her heritage that grants her spells, bonus feats, an additional class skill, and other special abilities. This source can represent a blood relation or an extreme event involving a creature somewhere in the family’s past. For example, a sorcerer might have a dragon as a distant relative or her grandfather might have signed a terrible contract with a devil. Regardless of the source, this influence manifests in a number of ways as the sorcerer gains levels. A sorcerer must pick one bloodline upon taking her first level of sorcerer. Once made, this choice cannot be changed.
At 3rd level, and every two levels thereafter, a sorcerer learns an additional spell, derived from her bloodline. These spells are in addition to the number of spells given for Sorcerer Spells Known. These spells cannot be exchanged for different spells at higher levels.
At 7th level, and every six levels thereafter, a sorcerer receives one bonus feat, chosen from a list specific to each bloodline. The sorcerer must meet the prerequisites for these bonus feats.
Filled with magical power that screams for release, sorcery is not so much a calling as a blessing—or a curse. For some sorcerers, this arcane birthright manifests in subtle and carefully controlled ways, assisting in their manipulation of others or the pursuit of lofty goals. For others, it is wild and unpredictable, the primal and explosive lashing out of a power greater than themselves. Presented below are a number of bloodlines representing the mysterious origin of your sorcerer’s abilities.
The Bloodline Arcana powers apply to all of the spells cast by characters of that bloodline, not just those cast using the sorcerer’s spell slots.
[[Elemental Body]] (//Su//): At 20th level, elemental power surges through your body. You gain immunity to sneak attacks, critical hits, and damage from cold.
[[Elemental Movement]] (//Su//): At 15th level, you gain a special movement type or bonus. You gain a swim speed of 60 ft.
[[Elemental Ray]] (//Sp//): Starting at 1st level, you can unleash an elemental ray as a standard action, targeting any foe within 30 feet as a ranged touch attack. This ray deals 1d6 points of cold damage + 1 for every two sorcerer levels you possess. You can use this ability a number of times per day equal to 3 + your Charisma modifier.
[[Elemental Resistance]] (//Ex//): At 3rd level, you gain energy resistance 10 against cold. At 9th level, your energy resistance increases to 20.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Elemental Speech
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 standard action V, S, M (iron filings)
Range: personal
Targets: you
Duration: 1 minute/level
Saving Throw: Spell Resistance:
"""
This spell enables you to converse with creatures associated with a chosen element, including but not limited to true elemental creatures. This spell gains the elemental subtype based on the version of the spell you cast. Elemental speech does not guarantee a friendly reaction; it merely enables communication. You may converse with all creatures of the selected type with an Intelligence score of 1 or greater, even if they do not understand one another. When cast as an air spell, you can converse in Auran and with any creature that has the air subtype or a fly speed. When cast as an earth spell, you can converse in Terran and with any creature that has the earth subtype or a burrow speed. When cast as a fire spell, you can converse in Ignan and with any creature that has the fire subtype. When cast as a water spell, you can converse in Aquan and with any creature that has the water subtype or a swim speed.
Source: APG
!! [[Elemental Theurgy]]
[General]
"""
You can combine alternative sources of power when using spells that contain the same elemental descriptor (air, earth, fire, or water)
''Prerequisite''
Ability to cast arcane spells with the same elemental descriptor as your domain, At least one elemental domain (Air, Earth, Fire, or Water),
''Benefit''
Choose one of your elemental domains: Air, Earth, Fire, or Water. You can cast spells with the related spell descriptor as if your caster level was the sum of all spellcasting classes that grant spells of that elemental spell descriptor. The effect applies only to a single elemental descriptor chosen when the feat is taken. For example, a 5th-level cleric/3rd -level wizard with the Fire domain and this feat can cast any spell with the fire descriptor as an 8th-level caster.
This does not affect your spells per day or spells known. It only increases your caster level when casting spells of the appropriate descriptor.
''Special'': You can gain this feat multiple times. Its effects do not stack. Each time you take the feat, it applies to a new elemental domain and spell descriptor.
Source: Dragon Compendium (pg 97)
Taken: 1st Level Feat Saved. Taken at 2nd level.
"""
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Embrace the Wild
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V
Range: personal
Targets: you
Duration: 10 minutes/level (D)
Saving Throw: Spell Resistance:
"""
Upon casting the spell, you gain the senses of animal creatures. You gain low-light vision and either blindsense out to 30 feet or scent (your choice). You also gain a +2 bonus on Perception checks.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Endothermic Touch
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M/DF (a small bit of snakeskin)
Range: touch
Targets: one living creature that has the dragon type or the reptilian subtype
Duration: 1 round/level
Saving Throw: Fort negates Spell Resistance: yes
"""
This spell slows the metabolism and other bodily functions of a creature for a short amount of time. The target is staggered and moves at half its normal speed (round down to the next 5-foot increment), but it can hold its breath for twice as long as normal.
Source: Monster Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Endure Elements
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration
1 standard action V, S
Range: touch
Targets: creature touched
Duration: 24 hours
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
A creature protected by endure elements suffers no harm from being in a hot or cold environment. It can exist comfortably in conditions between -50 and 140 degrees Fahrenheit without having to make Fortitude saves. The creature's equipment is likewise protected. Endure elements doesn't provide any protection from fire or cold damage, nor does it protect against other environmental hazards such as smoke, lack of air, and so forth.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Endure Elements, Communal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
1 standard action V, S
Range: touch
Targets: creatures touched
Duration: 24 hours
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like endure elements, except you divide the duration in 1-hour increments among the creatures touched.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Energy Vortex
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S
Range: 20 ft.
Targets: all creatures in 20 ft.-radius burst centered on you
Duration: instantaneous
Saving Throw: Reflex half Spell Resistance: yes
"""
When you cast energy vortex, you choose one of four energy types: acid, cold, electricity, or fire. A blast of that energy type bursts in all directions from you, dealing 1d8 points of damage +1 point per caster level (maximum +20) to nearby creatures other than you. If you are willing to take the damage yourself, you deal twice as much damage. You don't get a Reflex save, but spell resistance applies, as do any resistances and immunities you have to the energy type. The descriptor of this spell is the same as the energy type you choose when you cast it.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Enlarge Tail
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: personal
Targets: your tail
Duration: 1 hour/level
Saving Throw: Spell Resistance:
"""
When attacking with your tail or tail weapons, you gain 5 feet of reach, a +1 bonus on attack rolls, and a +2 bonus on damage rolls.
Source: Kobolds Of Golarion
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Enrage Animal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
enchantment (compulsion) [mind-affecting]
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Targets: one animal
Duration: concentration + 1 round/level
Saving Throw: none Spell Resistance: yes
"""
Enrage animal affects only creatures of the animal type and bestows a +4 morale bonus to Strength and Constitution, a +2 morale bonus on Will saves, and a —2 penalty to Armor Class. This effect is otherwise identical to a barbarian's rage (PH 25), except that the animal is not fatigued at the end of the rage.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Entangle
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, DF
Range: long (400 ft. + 40 ft./level)
Area: plants in a 40-ft.-radius spread
Duration: 1 min./level (D)
Saving Throw: Reflex partial; see text Spell Resistance: no
"""
This spell causes tall grass, weeds, and other plants to wrap around creatures in the area of effect or those that enter the area. Creatures that fail their save gain the entangled condition. Creatures that make their save can move as normal, but those that remain in the area must save again at the end of your turn. Creatures that move into the area must save immediately. Those that fail must end their movement and gain the entangled condition. Entangled creatures can attempt to break free as a move action, making a Strength or Escape Artist check. The DC for this check is equal to the DC of the spell. The entire area of effect is considered difficult terrain while the effect lasts. If the plants in the area are covered in thorns, those in the area take 1 point of damage each time they fail a save against the entangle or fail a check made to break free. Other effects, depending on the local plants, might be possible at GM discretion.
Source: PFRPG Core
Entertain (DC 25): The animal can dance, sing, or perform some other impressive and enjoyable trick to entertain those around it. At the command of its owner, the animal can attempt a Perform check (or a Charisma check if it has no ranks in Perform) to show off its talent. Willing onlookers or those who fail an opposed Sense Motive check take a –2 penalty on Perception checks to notice anything but the animal entertaining them. Once an onlooker observes an animal’s entertain trick, that creature cannot be distracted in this way by the same animal for 24 hours. Tricksters and con artists often teach their animals to perform this trick while they pickpocket viewers or sneak about unnoticed.
![[Equipment]]
|!Equipment |<|<|<|!Qty|!Wgt|
|!Worn |<|<|<|!|!|
||[[Masterwork Longspear]], "Anchor" |<|<|| 9 |
||[[Heavy Wooden Shield]]|<|<|| 10 |
||[[Bone Knives|Bone Knife]]|<|<| 3 | 3 |
||[[Bone Holy Symbol]]|<|<|| 0 |
||Wooden Mug|<|<|| 1 |
||[[Tan Bag of Tricks]]|<|<|| 1 |
||[[Ring of Protection]] +2|<|<|| 1 |
|!Carried |<|<|<|!|!|
||Exotic Pack Saddle|<|<|| 20 |
|||Spear |<| 1 | 6 |
|||[[Masterwork Hide Armor]] |<| | 25 |
|||Ice Pickaxe |<| | 3 |
|||Shovel head |<| | 4 |
|||Water |<| 2 | 2 |
|||Food |<| 24 | 24 |
|||Sack |<| | 0.5 |
||||Fishhooks | 3 | 0 |
||||Winter Blanket | | 3 |
|||Small Wrap |<| | 0 |
||||Chain with Skull Pendant | | 0 |
||||Elven Necklace | | 0 |
||||Carved Stone Ring Good Quality | | 0 |
||||Badge of Safe Passage | | 0 |
|!Money |<|<|<|!|!|
||Total|<|<|| 8.89 |
|||cp |<| 20 | 0.4 |
|||sp |<| 55 | 1.1 |
|||gp |<| 367 | 7.34 |
|||green gem |<| 1 | 0.05 |
|!Loot |<|<|<|!|!|
|| |<|<| | |
Your training allows you to slip bonds and escape from grapples.
!! Common Uses
The table below gives common DCs to escape various forms of restraints.
|!Action | !DC | !Action/Time |!Try Again? |
|Escape rope/bindings | Binder’s CMB +20 | 1 minute |Yes, unless DC is > 20 + your Escape Artist bonus |
|Escape a net, animate rope spell, command plants, control plants, or entangle | 20 | 1 full-round action |Not stated (yes by default) |
|Escape a snare spell | 23 | 1 full-round action | Not stated (yes by default) |
|Escape normal manacles | 30 | 1 minute | Yes |
|Move through a tight space | 30 | at least 1 minute | Yes |
|Escape masterwork manacles | 35 | 1 minute | Yes |
|Escape grapple or reduce pinned condition to grappled condition | Grappler’s CMD | standard action | Yes |
!! Escape Ropes
The DC of your Escape Artist check is equal to the binder’s combat maneuver bonus +20.
''Action ''Making an Escape Artist check to escape from rope bindings, manacles, or other restraints (except a grappler) requires 1 minute of work.
| Varies. If the DC to escape from rope or bindings is higher than 20 + your Escape Artist skill bonus, you cannot escape from the bonds using Escape Artist.
!! Escape Manacles
The DC to escape normal manacles is 30. The DC to escape masterwork manacles is 35.
''Action ''Making an Escape Artist check to escape from rope bindings, manacles, or other restraints (except a grappler) requires 1 minute of work.
''Retry?'' Varies. If the DC to escape from rope or bindings is higher than 20 + your Escape Artist skill bonus, you cannot escape from the bonds using Escape Artist.
!! Escape Net or Certain Spells
The DC to escape a net, an animated rope, commanded or controlled plants, or an entangle spell is 20.
The DC to escape a snare spell is 23.
''Action ''Escaping from a net, animated rope, commanded or controlled plants, or an entangle spell is a full-round action.
''Retry?'' Varies. If the DC to escape from rope or bindings is higher than 20 + your Escape Artist skill bonus, you cannot escape from the bonds using Escape Artist.
!! Grapple
You can make an Escape Artist check in place of a combat maneuver check to escape a grapple or to change from a pinned condition to merely grappled.
Move Through Tight Space
The DC noted is for getting through a space where your head fits but your shoulders don’t. If the space is long you may need to make multiple checks. You can’t get through a space that your head does not fit through.
''Action '' Squeezing through a tight space takes at least 1 minute, maybe longer, depending on how long the space is.
''Retry?'' Yes. You can make another check after a failed check if you’re squeezing your way through a tight space, making multiple checks. If the situation permits, you can make additional checks, or even take 20, as long as you’re not being actively opposed.
Modifiers
''Feat ''
If you have the Stealthy feat, you get a +2 bonus on Escape Artist skill checks. If you have 10 or more ranks in Escape Artist, the bonus increases to +4.
!! [[Eschew Materials]]
[General]
"""
You can cast many spells without needing to utilize minor material components.
''Benefit''
You can cast any spell with a material component costing 1 gp or less without needing that component. The casting of the spell still provokes attacks of opportunity as normal. If the spell requires a material component that costs more than 1 gp, you must have the material component on hand to cast the spell, as normal.
Source: Core (pg 123)
Taken: Sorcerer 1 Bonus Feat, taken at 2nd Level
"""
!! Sorcerer Class Feature
''Eschew Materials''
A sorcerer gains Eschew Materials as a bonus feat at 1st level.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Euphoric Cloud
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [poison]
1 standard action V, S, M (rare mushrooms worth 5 gp)
Range: medium (100 ft. + 10 ft./level)
Effect: fog spreads in 20-ft. radius, 20 ft. high
Duration: 1 round/level
Saving Throw: Fortitude negates (see text) Spell Resistance: no
"""
You create a bank of fog similar to that created by fog cloud except its vapors are intoxicating. Living creatures in the cloud become fascinated. This condition lasts as long as a creature is in the cloud and for 1d4+1 rounds after it leaves. Any creature that succeeds at its save but remains in the cloud must continue to save each round on your turn.
Source: Advanced Class Guide
Evasion ([[Ex|Extraordinary Ability]])
If an animal companion is subjected to an attack that normally allows a Reflex saving throw for half damage, it takes no damage if it makes a successful saving throw.
;<$text text="""Result is <$calc>1 + 1</$calc>""" />
:Result is <$calc>1 + 1</$calc>
;<$text text="""Result is <$calc>{{!!test}} + 1</$calc>""" />
:Result is <$calc>{{!!test}} + 1</$calc>
It's also possible to use the list widget inside the <$text text="""<$calc>""" /> widget to create sums of lists.
Exclusive (DC 20): The animal takes directions only from the handler who taught it this trick. If an animal has both the exclusive and serve tricks, it takes directions only from the handler that taught it the exclusive trick and those creatures indicated by the trainer’s serve command. An animal with the exclusive trick does not take trick commands from others even if it is friendly or helpful toward them (such as through the result of a charm animal spell), though this does not prevent it from being controlled by other enchantment spells (such as dominate animal), and the animal still otherwise acts as a friendly or helpful creature when applicable.
An exhausted character moves at half speed, cannot run or charge, and takes a –6 penalty to Strength and Dexterity. After 1 hour of complete rest, an exhausted character becomes [[fatigued|Fatigued]]. A [[fatigued|Fatigued]] character becomes exhausted by doing something else that would normally cause [[fatigue|Fatigued]].
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Expeditious Construction
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation) [earth]
1 standard action V, S, M (a handful of earth or stone)
Range: close (25 ft. + 5 ft./2 levels)
Effect: a low wall 10 feet long per 3 levels (minimum 10 feet) (S)
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
You create a low wall or other simple structure of packed earth or loose stone measuring 3 feet thick, 3 feet tall, and 10 feet long per 3 caster levels you possess (minimum 10 feet). Each square of the structure can appear only in unoccupied spaces atop earthen or stone surfaces able to support it. The wall grants cover as per a low wall and can be climbed with a successful DC 5 Climb check. Large and larger creatures don't need to attempt a Climb check to climb over it. At your discretion, you can make the structure half as long but thicker by forming it into a berm consisting of a steep slope on each side. Characters moving uphill (to an adjacent square of higher elevation) must spend 2 squares of movement to enter a square of steep slope. Characters running or charging downhill (moving to an adjacent square of lower elevation) must attempt a DC 10 Acrobatics check upon entering the first steep slope square. Mounted characters attempt a DC 10 Ride check instead. Characters who fail this check stumble and must end their movement 1d2 x 5 feet later. Characters who fail by 5 or more fall prone in the square where they end their movement. A steep slope increases the DC of Acrobatics checks by 2.
Source: Arcane Anthology
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Expeditious Excavation
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M (tiny shovel)
Range: close (25 ft. + 5 ft./2 levels)
Area: dirt in a 5-ft. cube
Duration: instantaneous
Saving Throw: see text Spell Resistance: no
"""
You can excavate and move earth, dust, and sand up to the size of a 5-foot cube. If you are buried, you may open a 5-foot cube around yourself, but the spell cannot be used for tunneling. Besides its mundane applications, you can open a 5-foot-deep pit at a creature's feet. A Medium or smaller creature falls prone in the pit unless it succeeds on a Reflex save. With a successful save, it can choose to land harmlessly on its feet in the pit or hop to an adjacent square; this movement does not provoke attacks of opportunity. A creature can escape a 5-foot-deep pit with a DC 5 Climb check. Larger creatures may ignore pits smaller than their size. The earth excavated by this spell is ordinarily distributed harmlessly across the spell's range, but you may choose to throw up a burst of grit and debris when you dig a pit. This cloud of debris provides concealment to any creatures in the square affected and all adjacent squares for 1 round. Expeditious excavation has no effect on solid rock or earth creatures.
Source: APG
<<sorcSpellCards "4">>
<$text text=<<sorcSpellCards "4">> />
<$set name="MyCards" value=<<sorcSpellCards "4">> >
<$button>
<$action-setfield $tiddler="Test Tiddler" text=<<MyCards>> />
Card Load
</$button>
</$set>
<<sorcSpellCards "4">>
!! Extraordinary Abilities (Ex)
Extraordinary abilities are non-magical. They are, however, not something that just anyone can do or even learn to do without extensive training. Effects or areas that suppress or negate magic have no effect on extraordinary abilities.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Extreme Buoyancy
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, M (a bag of air), DF
Range: touch
Targets: creature touched
Duration: 10 minutes/level
Saving Throw: Will negates Spell Resistance: yes
"""
The target's buoyancy becomes and stays swiftly rising, regardless of how dense the target and its gear are. Among other effects, the target needs to succeed at a DC 20 Swim check to submerge itself and to stay submerged (see Buoyancy on page 43).
Source: Aquatic Adventures
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Face Of The Devourer
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation (polymorph)
1 standard action V, S
Range: touch
Targets: creature touched
Duration: 1 minute/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
You transform the target's face into a hideous shape, such as a half-melted visage with insect legs instead of teeth, seeping pits instead of eyes, and suckered tongues dangling from its misshapen mouth. You do not choose what shape the target's face takes, and the shape is different every time you cast the spell. This transformation does not interfere with the target's senses or its ability to breathe, though it might prevent it from speaking. The target gains a +4 circumstance bonus on Intimidate checks. If the target does not normally have a bite attack, it gains a bite attack as a natural weapon for the duration of the spell. This bite attack deals 1d6 points of damage if the target is Medium, 1d4 points of damage if the target is Small, or 1d8 points of damage if the creature is Large. The target may use this bite as a primary attack or a secondary attack.
Source: Inner Sea Gods
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Faerie Fire
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
evocation
1 standard action V, S, DF
Range: long (400 ft. + 40 ft./level)
Area: creatures and objects within a 5-ft.-radius burst
Duration: 1 min./level (D)
Saving Throw: none Spell Resistance: yes
"""
A pale glow surrounds and outlines the subjects. Outlined subjects shed light as candles. Creatures outlined by faerie fire take a -20 penalty on all Stealth checks. Outlined creatures do not benefit from the concealment normally provided by darkness (though a 2nd-level or higher magical darkness effect functions normally), blur, displacement, invisibility, or similar effects. The light is too dim to have any special effect on undead or dark-dwelling creatures vulnerable to light. The faerie fire can be blue, green, or violet, according to your choice at the time of casting. The faerie fire does not cause any harm to the objects or creatures thus outlined.
Source: PFRPG Core
A fatigued character can neither run nor charge and takes a –2 penalty to Strength and Dexterity. Doing anything that would normally cause fatigue causes the fatigued character to become [[exhausted|Exhausted]]. After 8 hours of complete rest, fatigued characters are no longer fatigued.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Fear The Sun
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a drow eyelash)
Range: medium (100 ft. + 10 ft./level)
Targets: up to one creature/level, no two of which can be more than 30 ft. apart
Duration: 1 round/level
Saving Throw: Fortitude negates Spell Resistance: yes
"""
Each target that fails its saving throw gains light blindness, as per the universal monster rule. When exposed to bright light, affected targets are blinded for 1 full round and are dazzled in successive rounds. If you cast this spell in the presence of bright light, any target that fails its save is blinded immediately, and dazzled starting at the beginning of its first turn.
Source: Blood Of Shadows
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Feast Of Ashes
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a pinch of ash)
Range: close (25 ft. + 5 ft/2 levels)
Targets: one creature
Duration: 2 days/level (D)
Saving Throw: Fortitude negates Spell Resistance: yes
"""
You curse the target with a hunger no food can assuage. On a failed saving throw, the target begins to starve (see page 444 of the Core Rulebook). The effects of this spell cannot inflict more nonlethal damage than the target has hit points. No amount of eating can counter the effect and, further, even attempting to eat causes the target to become nauseated for 1 round unless they make a DC 12 Fortitude save. The target still experiences the other normal effects of anything consumed (such as poisons or potions). Feast of ashes can be removed with a break enchantment, limited wish, miracle, remove curse, or wish spell, but effects suffered as a result of starvation must be healed by normal means.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Feather Step
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 10 minutes/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes
"""
For the duration of this spell, the subject ignores the adverse movement effects of difficult terrain, and can even take 5-foot steps in difficult terrain.
Source: APG
<$list filter="[tag[Feat]!tag[Knut]sort[title]]">
<$transclude mode="block"/>
</$list>
!!Knut Feats
{{Knut Feats}}
! [[Feats and Features|Features]]
@@.borderless
|![[Flaws]] |<|<|
|!Flaw |[[Mark of the Witch]]|-4 CHA rolls vs. people of the Glacier|
|!Flaw |[[Uncivilized]]|-2 all Skills in civilized lands|
| |<|<|
|![[Traits]] |<|<|
|!Magic |[[Magical Knack (Druid)|Magical Knack]]|+2 Caster Level Druid Spells|
|!Magic |[[Magical Knack (Sorcerer)|Magical Knack]]|+2 Caster Level Sorcerer Spells|
| |<|<|
|![[Feats]] |<|<|
|!1^^st^^ Flaw |[[Additional Domain (Cold)|Additional Domain]]|Gain another Domain|
|!2^^nd^^ Flaw |[[Boon Companion]]|+4 Druid Levels for Animal Companion|
|!Human |[[Snowcasting]]|Cast spells as [cold] spells using snow|
|!1^^st^^ Level |[[Elemental Theurgy (Cold)|Elemental Theurgy]]|Divine and Arcane Caster Levels stack for [cold] spells|
|!Sorcerer |[[Eschew Materials]]|Cast spells without material components|
|!3^^rd^^ Level |[[Southern Magician]]|Cast Divine and Arcane spells as other source 3/day|
|!5^^th^^ Level |[[Learn Ranger Trap (Sleet Trap)|Learn Ranger Trap]]|Prepare [[Sleet Trap]] DC 18, 5/day|
| |<|<|
|![[Druid Class Features|Druid Features]] |<|<|
|!1^^st^^ Level |[[Druid Proficiencies|Proficiencies]]|Druid Weapons and Armor, can't wear metal armor or shields|
|!1^^st^^ Level |[[Druid Class Skills|Class Skills]]||
|!1^^st^^ Level |[[Nature Bond (Companion)|Nature Bond]]|Grizzly Bear Companion|
|!Feat |[[Nature Bond (Domain)|Cold Domain]]|Cold Domain|
|!1^^st^^ Level | Domain Power: [[Icicle]]|Ranged Touch Attack dealing 1d6+1 cold damage 30 ft. range, 8/day|
|!1^^st^^ Level |[[Nature Sense]]|+2 Know Nature and Survival|
|!1^^st^^ Level |[[Wild Empathy]]|+7 CHA Roll to use Diplomacy on Animals|
|!1^^st^^ Level |[[Spellcasting (Druid)|Druid Spellcasting]]|WIS-based Prepared Divine Spells from Druid spell list|
|!1^^st^^ Level | Spontaneous Spellcasting|Lose a non-domain spell to cast [[Summon Nature's Ally|Summon Nature's Ally I Spell]] spell|
|!1^^st^^ Level | Spellcasting (Lawful)|Can't prepare [chaos] spells|
|!2^^nd^^ Level |[[Icewalking]]|Ignore penalties to Acrobatics, Climb and Stealth in icy/snowy conditions|
|!3^^nd^^ Level |[[Arctic Endurance]]|Ignore cold climate as [[Endure Elements|Endure Elements Spell]], [[Dazzled]] immunity|
| |<|<|
|![[Sorcerer Class Features|Sorcerer Features]] |<|<|
|!1^^st^^ Level |[[Sorcerer Proficiencies|Proficiencies]]|Sorcerer Weapons and Armor, wearing armor or shields suffers Arcane Spell Failure|
|!1^^st^^ Level |[[Sorcerer Class Skills|Class Skills]]||
|!1^^st^^ Level |[[Bloodline (Elemental)|Elemental Bloodline]]||
|!1^^st^^ Level | [[Bloodline: Class Skill|Elemental Bloodline]]|Know Planes is a class skill|
|!1^^st^^ Level | [[Bloodline Arcana]]|Cast spells dealing energy damage to deal [cold] damage|
|!1^^st^^ Level | [[Bloodline Power: Cold Ray|Elemental Ray]]|Ranged Touch Attack dealing 1d6 cold damage 30 ft. range, 7/day|
|!1^^st^^ Level |[[Spellcasting (Sorcerer)|Sorcerer Spellcasting]]|CHA-based Spontaneous Arcane Spells from Sorcerer/Wizard spell list|
|!1^^st^^ Level |[[Eschew Materials]]|Eschew Materials Bonus Feat|
@@
Feint (DC 20): The companion is trained to feint against opponents. A companion must know the attack trick before it can be taught the feint trick, and it performs feints only against targets it would normally attack.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ferment
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M (a drop of ale, mead, or wine)
Range: touch
Targets: object touched
Duration: 10 minutes/level
Saving Throw: Fortitude negates (object) Spell Resistance: yes (object)
"""
This spell temporarily imbues a potable liquid (including elixirs, extracts, potions, and poisons) with an intoxicant. The caster must succeed at a caster level check in order to affect magic liquids and poisons (DC = 10 + item level for magic liquids, DC equal to the poison's save DC for a poison); otherwise, the spell fails. If the caster succeeds, the liquid also assumes a flavor according to what the caster desires, but the effect on the imbiber is the same. An imbiber of a liquid affected by ferment must succeed at a Fortitude saving throw at the spell's save DC or take a -2 penalty on attack rolls, saves, ability checks, and skill checks for the remaining duration of the spell. Additionally, the DC of any skill check to identify a magic liquid or poison under the effects of this spell increases by 5.
Source: Inner Sea Temples
Fetch (DC 15): The animal goes and gets something. If you do not point out a specific item, the animal fetches a random object.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Fey Form I
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation (polymorph)
1 standard action V, S, M (a piece of the creature whose form you plan to assume)
Range: personal
Targets: you
Duration: 1 minute/level (D)
Saving Throw: Spell Resistance:
"""
You assume the form of a Small or Medium creature of the fey type. Your base speed changes to match the new form's base speed, with a maximum speed of 60 feet (even if the chosen fey form has a base speed in excess of that speed). If the form you assume has any of the following abilities, you gain those abilities: climb speed 30 feet, fly speed 30 feet (average maneuverability), swim speed 30 feet, darkvision 60 feet, low-light vision, scent, and boot stomp. If the form you assume has the aquatic subtype, you can breathe air and water. If the creature has any weaknesses, you gain those weaknesses. If a listed ability depends on an item (as is the case with boot stomp), this spell transforms the nearest counterpart among your worn gear into that item. You can more easily cast spells that the creature has as spell-like abilities, although you must still cast them as normal for your class. When you cast a spell that the creature has as a spell-like ability, it requires no verbal or somatic components and can't be countered. Small Fey: If you assume this form, you gain a +2 size bonus to your Dexterity and Constitution scores. Medium Fey: If you assume this form, you gain a +2 size bonus to your Strength and Constitution scores.
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Fiery Runes
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S
Range: touch
Targets: melee weapon touched
Duration: 1 minute/level or until discharged (see text)
Saving Throw: none Spell Resistance: yes (see text)
"""
You charge a weapon with a magic rune of fire. When the wielder of the weapon successfully strikes a foe in melee with the weapon, the wielder can discharge the rune as a swift action to deal 1d4+1 points of fire damage to the target. This damage isn't multiplied on a critical hit. If the target has spell resistance, you attempt a caster level check (1d20 + caster level) against that spell resistance when the rune is discharged. If the rune is successfully resisted, the spell is dispelled; otherwise, the rune deals damage normally. For every 2 caster levels beyond 3rd the caster possesses, the rune deals an additional 1d4+1 points of fire damage (2d4+2 at caster level 5th, 3d4+3 at 7th, and so on) to a maximum of 5d4+5 points of fire damage at caster level 11th.
Source: Melee Tactics Toolbox
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Fins To Feet
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation (polymorph)
1 standard action V, S
Range: touch
Targets: willing creature touched
Duration: 1 hour/level (D)
Saving Throw: none Spell Resistance: yes
"""
You transform the target's fins, flippers, or tail into legs and feet, allowing it to walk on land. The target loses its swim speed but gains a base speed appropriate for a humanoid of its size (speed 30 if a Medium or larger creature, speed 20 if Small). If the creature is immersed in water for 1 round, the transformation reverts, allowing it to swim normally. One round after leaving the water, the transformation occurs again, allowing it to walk. This spell only works on merfolk, tritons, seals, fish, and other creatures whose bodies or limbs are used mainly for swimming and are not suitable for walking. It does not give the target the ability to breathe air.
Source: Advanced Race Guide
! Fire Beetle
|N Small vermin|
|''Init'' +- ''Senses'' [[Low-Light Vision]] ''Perception'' +0|
|!Defense |
|''AC'' 12, touch 11, flat-footed 12 |
|''hp'' 4 (1d8) |
|''Fort'' +2, ''Ref'' +0, ''Will'' +0 |
|''Immunities'' [[Mind-Affecting]] effects |
|!Offense |
|''Speed'' 30 ft., fly 30 ft. (poor) |
|''Melee'' bite +1 (1d4) |
|!Statistics |
|''Str'' 10, ''Dex'' 11, ''Con'' 11, ''Int'' -, ''Wis'' 10, ''Cha'' 7 |
|''Base Attack'' +0, ''CMB'' -1, ''CMD'' 9 (17 vs. [[Trip]]) |
|''Feats'' |
|''Skills'' Fly -2 |
|''SQ'' luminescence |
|!Special Abilities |
|!''Luminescence'' (Ex) |
|A fire beetle’s glowing glands provide light in a 10-foot radius. A dead fire beetle’s luminescent glands continue to glow for 1d6 days after its death. |
Although nocturnal, the fire beetle lacks darkvision—it relies on its own glowing glands for illumination. Caged fire beetles are a popular source of long-lasting illumination among eccentrics and miners.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Fire Sneeze
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, M (hot pepper soaked in oil)
Range: personal
Targets: you
Duration: 1 round + 1 round/2 levels
Saving Throw: Reflex half Spell Resistance: yes
"""
This spell causes you to begin sneezing gouts of fire that can not only set creatures ablaze but also drop them flat on their backs. Once you cast this spell, you must sneeze each round as a standard action-you can take no other standard action as long as this spell is in effect, nor can you take full-round actions. Each time you sneeze, you produce a 10-foot-long cone of fire and wind. All creatures caught in this cone take 2d6 points of fire damage-a successful Reflex save halves this damage. Any creature that fails to resist this spell with a Reflex save must immediately make a DC 12 Fortitude save or be knocked prone by the blast of wind associated with the sneeze.
Source: Goblins Of Golarion
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Fire Trap
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
10 minutes V, S, M (gold dust worth 25 gp)
Range: touch
Targets: object touched
Duration: permanent until discharged (D)
Saving Throw: Reflex half; see text Spell Resistance: yes
"""
Fire trap creates a fiery explosion when an intruder opens the item that the trap protects. A fire trap spell can ward any object that can be opened and closed. When casting fire trap, you select a point on the object as the spell's center. When someone other than you opens the object, a fiery explosion fills the area within a 5-foot radius around the spell's center. The flames deal 1d4 points of fire damage + 1 point per caster level (maximum +20). The item protected by the trap is not harmed by this explosion. A fire-trapped item cannot have a second closure or warding spell placed on it. A knock spell does not bypass a fire trap. An unsuccessful dispel magic spell does not detonate the spell. Underwater, this ward deals half damage and creates a large cloud of steam. You can use the fire-trapped object without discharging it, as can any individual to whom the object was specifically attuned when cast. Attuning a fire-trapped object to an individual usually involves setting a password that you can share with friends. Magic traps such as fire trap are hard to detect and disable. A character with trapfinding can use the Perception skill to find a fire trap and Disable Device to thwart it. The DC in each case is 25 + spell level (DC 27 for a druid's fire trap or DC 29 for the arcane version).
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Fire Wings
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 round V, S, M (feather of a bird, burned), DF (golden pheonix amulet 150gp)
Range: personal
Targets: you
Duration: 1 min./level
Saving Throw: Spell Resistance:
"""
This spell transforms your arms into wings of brilliant fire. The flame does not damage you or any items you carry. Because your arms are transformed, you cannot hold items in your hands or cast spells that require somatic components, but rings, bracers, and other items worn on your arms when you cast the spell still function normally. The wings allow you to fly at speed of 60 feet (or 40 feet if you wear medium or heavy armor), with good maneuverability. You can charge but not run while flying, and you cannot carry more than a light load aloft. Using a fire wings spell requires only as much concentration as walking, so you can take other actions normally. If the spell duration expires while you are aloft, you descend at a rate of 60 feet per round for 1d6 rounds, then fall the rest of the distance if you haven't already landed. Because dispelling a spell effectively ends it, the subjects also descends in this way if the fire wings spell is dispelled, but not if it is negated by and antimagic field. If you are not flying, you can make up to two attacks each round with the fire wings as if they were natural weapons, a successful attack deals 2d6 points of fire damage. The wings can be extinguished (and the spell canceled) by a quench spell, immersion in water, or a wind of hurricane or greater force.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Firebelly
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration
1 standard action V, S, DF
Range: personal
Targets: you
Duration: 1 minute/level
Saving Throw: Reflex half; see text Spell Resistance: yes; see text
"""
A magical fire warms your belly, granting fire resistance 5 and making your gut hot to the touch (but not enough to damage you or anything else). As a standard action, you can breathe a 15-foot cone of flame that deals 1d4 points of fire damage (Reflex half, SR applies). Each time you use this breath weapon, reduce the remaining duration of the spell by 1 minute.
Source: Inner Sea Gods
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
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Flame Blade
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, DF
Range: 0 ft.
Effect: sword-like beam
Duration: 1 min./level (D)
Saving Throw: none Spell Resistance: yes
"""
A 3-foot-long, blazing beam of red-hot fire springs forth from your hand. You wield this blade-like beam as if it were a scimitar. Attacks with the flame blade are melee touch attacks. The blade deals 1d8 points of fire damage + 1 point per two caster levels (maximum +10). Since the blade is immaterial, your Strength modifier does not apply to the damage. A flame blade can ignite combustible materials such as parchment, straw, dry sticks, and cloth.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Flaming Sphere
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, M/DF (tallow, brimstone, and powdered iron)
Range: medium (100 ft. + 10 ft./level)
Effect: 5-ft.-diameter sphere
Duration: 1 round/level
Saving Throw: Reflex negates Spell Resistance: yes
"""
A burning globe of fire rolls in whichever direction you point and burns those it strikes. It moves 30 feet per round. As part of this movement, it can ascend or jump up to 30 feet to strike a target. If it enters a space with a creature, it stops moving for the round and deals 3d6 points of fire damage to that creature, though a successful Reflex save negates that damage. A flaming sphere rolls over barriers less than 4 feet tall. It ignites flammable substances it touches and illuminates the same area as a torch would. The sphere moves as long as you actively direct it (a move action for you); otherwise, it merely stays at rest and burns. It can be extinguished by any means that would put out a normal fire of its size. The surface of the sphere has a spongy, yielding consistency and so does not cause damage except by its flame. It cannot push aside unwilling creatures or batter down large obstacles. A flaming sphere winks out if it exceeds the spell's range.
Source: PFRPG Core
Flank (DC 20): You can instruct an animal to attack a foe you point to and to always attempt to be adjacent to (and threatening) that foe. If you or an ally is also threatening the foe, the animal attempts to flank the foe, if possible. While animals following the attack trick will flank when convenient, this trick instructs them to flank even if doing so denies it a full attack or puts the animal companion at an inconvenience or at risk, such as from attacks of opportunity, dangerous positioning, or difficult terrain. The animal must know the attack trick before it can learn this trick, and it performs it only against foes it would normally attack.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Flare Burst
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
evocation (light)
1 standard action V
Range: close (25 ft. + 5 ft./2 levels)
Effect: 10-ft.-radius burst of light
Duration: instantaneous
Saving Throw: Fortitude negates Spell Resistance: yes
"""
This spell functions as flare, except it affects all creatures in a 10-foot-radius burst from the target point.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Flare
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
evocation
1 standard action V
Range: close (25 ft. + 5 ft./2 levels)
Effect: burst of light
Duration: instantaneous
Saving Throw: Fortitude negates Spell Resistance: yes
"""
This cantrip creates a burst of light. If you cause the light to burst in front of a single creature, that creature is dazzled for 1 minute unless it makes a successful Fortitude save. Sightless creatures, as well as creatures already dazzled, are not affected by flare.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Flashfire
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Area: one 5-ft. square/2 levels
Duration: 1 round/level
Saving Throw: Reflex negates (object) and Fortitude negates Spell Resistance: yes (object)
"""
You cause flames to spring up in the area of effect. These flames deal 1d6 points of fire damage for every 3 caster levels you have (maximum 5d6) to each creature that enters a burning area or begins its turn in the area; these creatures also catch on fire. A creature that succeeds at a Reflex save negates the damage and avoids catching on fire. The area and all adjacent 5-foot squares are smoky, providing concealment within. You can concentrate as a standard action to ignite one 5-foot square adjacent to a currently burning square. Heavy precipitation (including sleet storm) ends the spell. Strong and severe winds spread each square of flashfire downwind by one square each round, but windstorm-force or stronger winds extinguish the fires.
Source: Ultimate Wilderness
<$list filter="[tag[Flaw]!tag[Knut]sort[title]]">
<$transclude mode="block"/>
</$list>
Flee (DC 20): The animal attempts to run away or hide as best it can, returning only when its handler commands it to do so. Until such a command is received, the animal does its best to track its handler and any accompanying creatures, remaining hidden but within range of its sight or hearing. This trick is particularly useful for adventurers and thieves in that it allows the animal to evade capture, and then return later to help free its friends.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Flurry Of Snowballs
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S
Range: 30 ft.
Area: cone-shaped burst
Duration: instantaneous
Saving Throw: Reflex half Spell Resistance: no
"""
You send a flurry of snowballs hurtling at your foes. Any creature in the area takes 4d6 points of cold damage from being pelted with the icy spheres.
Source: AP 67
You are skilled at flying, either through the use of wings or magic, and you can perform daring or complex maneuvers while airborne. Note that this skill does not give you the ability to fly.
''Special Requirement''
You cannot take this skill without a natural means of flight or gliding. Creatures can also take ranks in Fly if they possess a reliable means of flying every day (either through a spell or other magical manner, such as a druid’s wild shape ability).
|!Flying Maneuver | !Fly DC |
|Move less than half speed and remain flying | 10 |
|Hover | 15 |
|Turn greater than 45° by spending 5 feet of movement | 15 |
|Turn 180° by spending 10 feet of movement | 20 |
|Fly up at a greater than 45° angle^^1^^ | 20 |
FAQ/Errata
^^1^^ When a character or creature is flying, and that creature decides to ascend at a 45 degree angle, the rules states that it moves at half speed? Do the rules for diagonal square counting still apply when moving up diagonally in this way?
No. Since the game is generally assumed to be played in two dimensions, even when representing three dimensional combat, the rules for ascending are handled by the speed reduction instead of asking players and GMs to ascertain the diagonal vertical movement.
''Check''
You generally need only make a Fly check when you are attempting a complex maneuver. Without making a check, a flying creature can remain flying at the end of its turn so long as it moves a distance greater than half its speed. It can also turn up to 45 degrees by sacrificing 5 feet of movement, can rise at half speed at an angle of 45 degrees1, and can descend at any angle at normal speed. Note that these restrictions only apply to movement taken during your current turn. At the beginning of the next turn, you can move in a different direction than you did the previous turn without making a check. Taking any action that violates these rules requires a Fly check. The difficulty of these maneuvers varies depending upon the maneuver you are attempting, as noted on the following chart.
''Retry? ''Varies. You can attempt a Fly check to perform the same maneuver on subsequent rounds. If you are using wings and you fail a Fly check by 5 or more, you plummet to the ground, taking the appropriate falling damage.
!!Common Uses
!!Avoid Falling After Being Attacked
You are not considered flat-footed while flying. If you are flying using wings and you take damage while flying, you must make a DC 10 Fly check to avoid losing 10 feet of altitude. This descent does not provoke an attack of opportunity and does not count against a creature’s movement.
!!Avoid Falling After Collision
If you are using wings to fly and you collide with an object equal to your size or larger, you must immediately make a DC 25 Fly check to avoid plummeting to the ground, taking the appropriate falling damage.
!!Negate Falling Damage
If you are falling and have the ability to fly, you can make a DC 10 Fly check to negate the damage. You cannot make this check if you are falling due to a failed Fly check or a collision. See Falling Damage if you fail this check.
Modifiers
High Wind Speeds
Flying in high winds adds penalties on your Fly checks as noted on the Wind Effects table.
|!Wind Force | !Wind Speed | !Checked Size | !Blown Away Size | !Fly Penalty |
|Light | 0–10 mph | — | — | — |
|Moderate | 11–20 mph | — | — | — |
|Strong | 21–30 mph | Tiny | — | –2 |
|Severe | 31–50 mph | Small | Tiny | –4 |
|Windstorm | 51–74 mph | Medium | Small | –8 |
|Hurricane | 75–174 mph | Large | Medium | –12 |
|Tornado | 175+ mph | Huge | Large | –16 |
“Checked” means that creatures of that size or smaller must succeed on a DC 20 Fly check to move at all so long as the wind persists.
“Blown away” means that creatures of that size or smaller must succeed on a DC 25 Fly check or be blown back 2d6×10 feet and take 2d6 points of nonlethal damage. This check must be made every round the creature remains airborne. A creature that is blown away must still make a DC 20 Fly check to move due to also being checked.
Action
None. A Fly check doesn’t require an action; it is made as part of another action or as a reaction to a situation.
!! Modifiers
''Familiars ''
A spellcaster with a bat familiar gains a +3 bonus on Fly checks.
'' Fly Speed''
Creatures with a fly speed treat the Fly skill as a class skill. A creature with a natural fly speed receives a bonus (or penalty) on Fly skill checks depending on its maneuverability. Creatures without a maneuverability rating are assumed to have average maneuverability and take no penalty on Fly checks.
"""
Clumsy –8
Poor –4
Average +0
Good +4
Perfect +8
"""
''Size''
A creature larger or smaller than Medium takes a size bonus or penalty on Fly checks depending on its size category:
"""
Fine +8
Diminutive +6
Tiny +4
Small +2
Large –2
Huge –4
Gargantuan –6
Colossal –8
"""
''Feats ''
If you have the Acrobatic feat, you get a +2 bonus on Fly skill checks. If you have 10 or more ranks in this skill, the bonus from the Acrobatics feat increases to +4.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Fog Cloud
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation)
1 standard action V, S
Range: medium (100 ft. + 10 ft. level)
Effect: fog spreads in 20-ft. radius
Duration: 10 min./level
Saving Throw: none Spell Resistance: no
"""
A bank of fog billows out from the point you designate. The fog obscures all sight, including darkvision, beyond 5 feet. A creature within 5 feet has concealment (attacks have a 20% miss chance). Creatures farther away have total concealment (50% miss chance, and the attacker can't use sight to locate the target). A moderate wind (11+ mph) disperses the fog in 4 rounds; a strong wind (21+ mph) disperses the fog in 1 round. The spell does not function underwater.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Forest Friend
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
1 round V, S, M (a pinch of manure)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one willing living creature per three levels, no two of which may be more than 30 ft. apart.
Duration: 1 minute/level
Saving Throw: none Spell Resistance: no
"""
While subject to this spell, the targets find that forested areas become helpful instead of hindering. The targets suffer no hindrances to movement and suffer no penalties on Acrobatics and Stealth checks from undergrowth in forested terrain. Furthermore, forested overgrowth imposes a miss chance 10% lower than normal. When moving in and among trees, those subject to the spell gain a +5 circumstance bonus on Acrobatics checks and Climb checks. Rangers in their favored terrain can also add their favored terrain bonus on such Acrobatics and Climb checks.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Free Spirit
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
abjuration
1 standard action V, S
Range: personal
Targets: you
Duration: 1 minute/level
Saving Throw: Spell Resistance:
"""
This spell allows you to channel the essence of Cayden Cailean's philosophy, giving you the benefits of a freedom of movement spell and granting you a +4 bonus on saving throws against fear effects. The spell also makes you drunk. For the duration of the spell, you take a -2 penalty on attack rolls, ability checks, skill checks, and concentration checks. If you somehow remove or avoid these penalties, the spell's duration ends.
Source: Inner Sea Temples
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Free Swim
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
abjuration
1 standard action V, S, M (a strip of kelp bound to the target), DF
Range: touch
Targets: creature touched
Duration: 10 minutes/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The target can move and attack underwater normally without the usual penalties involved with underwater combat, as if under the effects of freedom of movement. However, the target doesn't gain any protections against grapple, paralysis, and magical effects that impede movement (such as solid fog, slow, and web).
Source: Aquatic Adventures
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Frigid Touch
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S
Range: touch
Targets: creature touched
Duration: instantaneous
Saving Throw: none Spell Resistance: yes
"""
This spell causes your hand to glow with a pale blue radiance. Your melee touch attack deals 4d6 points of cold damage and causes the target to be staggered for 1 round. If the attack is a critical hit, the target is staggered for 1 minute instead.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Frost Breath
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, M (three drops of water or ice which are held in a cupped palm and blown toward the target)
Range: 30 ft.
Area: cone-shaped burst
Duration: instantaneous
Saving Throw: Reflex half Spell Resistance: yes
"""
You breathe a cone of intense cold at your foes. The spell deals 1d4 points of cold damage per two caster levels (maximum 5d4). In addition, all creatures damaged by the frost breath that fail their Reflex save are dazed for 1 round by the sudden shock of cold.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Frost Fall
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Area: 5-foot radius burst
Duration: 1 round/2 levels
Saving Throw: Fortitude partial Spell Resistance: yes
"""
The area of this spell is covered in chilling frost, dealing 2d6 points of cold damage to all creatures within it. Creatures that the spell initially damages must succeed at a Fortitude save or become staggered for 1 round. The area remains chilled for the spell's duration. Any creature that starts your turn within the spell's area takes 1d6 points of cold damage (Fortitude saving throw for half) but does not become staggered even on a failed saving throw.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Frost Strike
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [cold]
1 standard action V, S
Range: personal
Targets: you
Duration: 1 minute/level (D)
Saving Throw: Reflex negates (see text) Spell Resistance: yes
"""
Icy Shards burst from your body, lodging in your opponent and blossoming into a hoary crust as you pummel your target. While this spell is in effect, your natural attacks and unarmed attacks deal an additional 1d6 points of cold damage, and any creature hit by your natural or unarmed strike must succeed at a Reflex save or be entangled for the duration of the spell. A creature entangled by this spell can spend a standard action to remove the ice but can be entangled again by further unarmed strikes.
Source: Homebrew
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Frostbite
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: touch
Targets: creature touched
Duration: instantaneous
Saving Throw: none Spell Resistance: yes
"""
Your melee touch attack deals 1d6 points of nonlethal cold damage + 1 point per level, and the target is fatigued. The fatigued condition ends when the target recovers from the nonlethal damage. This spell cannot make a creature exhausted even if it is already fatigued. You can use this melee touch attack up to one time per level.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Frozen Spear
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, DF
Range: touch
Targets: one touched nonmagical spear
Duration: 1 min./level
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
Your own non-magical short spear, spear or long spear becomes a weapon with a +1 enhancement bonus on attack and damage rolls. A spear gains this enhancement for both ends of the weapon, the wielder is able to strike with the blunt end. A medium spear deals 2d6 damage, a spear sized for small deals 1d8, +1 for its enhancement bonus. These effects only occur when the weapon is wielded by you. If you do not wield it, the weapon behaves as if unaffected by this spell.
Source: Homebrew
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Full Pouch
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 swift action V, S, M (alchemical reagents or herbs worth 1 gp)
Range: touch
Targets: 1 object touched
Duration: instantaneous
Saving Throw: Fortitude negates (object) Spell Resistance: no
"""
You cast this spell as you draw out a consumable alchemical item to use. The object must be an alchemical item, but not a dose of disease, a poison, a magic potion, or another type of consumable item. The item divides itself into two nearly identical copies and the newly separated one is delivered into your hand. The new item functions as the original in all ways except the copied item suffers a slight reduction in quality. Saves against the new alchemical item's affects use the original item's save DC or the save DC of this spell, whichever is higher.
Source: Arcane Anthology
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Fungal Blisters
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 1 minute/level or until discharged (see text)
Saving Throw: Spell Resistance:
"""
When you cast this spell, horrible, fungal growths sprout forth all over your body. You develop 1d2+1 of these blisters per 2 caster levels. Each time you are dealt more than 5 points of bludgeoning, piercing, or slashing damage from a single attack, one of these blisters bursts, releasing a cloud of harmful spores in a 5-foot-radius burst centered on you. These spores enter the lungs of all living creatures within the cloud that need to breathe and deal 1d6+1 points of damage for every 2 caster levels you have (Fortitude negates). This is a disease effect, and you and plants aren't affected by the spores. It is possible for more than one blister to burst in a single round. If you are reduced to 0 or fewer hit points, all remaining blisters burst, and the resulting spores deal the cumulative amount of damage. You are not able to cast this spell while wearing heavy armor. If you don heavy armor during the spell's duration, all remaining blisters burst as if you had been reduced to 0 or fewer hit points.
Source: AP 119
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Fungal Infestation
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
necromancy
1 standard action V, S
Range: touch
Targets: creature touched
Duration: 1d3 days
Saving Throw: Fortitude negates Spell Resistance: yes
"""
You coat the target in necrotic fungus that makes its flesh soft and fragile. Toadstools, ringworm, and other disgusting fungal growths sprout from its skin. The target takes 1d3 points of Charisma damage. Any physical attack against the target automatically adds 1d6 points of bleed damage.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Fury Of The Sun
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 10 minutes/level
Saving Throw: Fortitude negates Spell Resistance: yes
"""
You curse the target to suffer unbearable heat. On a failed saving throw, the target is immediately subjected to severe heat (Core Rulebook 444), takes 1d4 points of nonlethal damage, and is suffering from heatstroke (fatigued). The target must save every 10 minutes as normal for severe heat (starting at DC 15 rather than the DC of this spell). Because this heat is internal, the target cannot avoid it using the normal methods for escaping heat dangers such as Survival checks or finding shade.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Garden Of Peril
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [poisonUM]
1 standard action V, S, M/DF (a pinch of spores)
Range: medium (100 ft. + 10 ft./level)
Effect: one poisonous mushroom/level, no two of which can be more than 30 ft. apart
Duration: 1 round/level (D)
Saving Throw: Fortitude negates Spell Resistance: no
"""
Vividly colored poisonous mushrooms instantly spring into existence in squares you select. The mushrooms can appear on any solid surface, even growing horizontally from walls or upside down from the ceiling. Once per round as a move action, starting the round after you cast this spell, you can command the mushrooms to release poisonous spores. Each creature adjacent to a mushroom or in a mushroom's square must then succeed at a Fortitude save or become sickened for 1d4 rounds. The condition of creatures that fail multiple saving throws does not worsen, but each additional failed saving throw adds 1d4 rounds to the duration the creature is sickened. The mushrooms are Tiny and cannot provide cover, but they are fairly sturdy (AC 7, hp 30, break DC 20). Creatures can move through squares containing mushrooms as normal. When destroyed, a mushroom evaporates and releases one last cloud of spores.
Source: Dirty Tactics Toolbox
Super Tough Skin, requiring magic to pierce.
Ooze, Immune to Electricity
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Gentle Breeze
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
evocation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature or object
Duration: 1 hour (D)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You create a light wind that blows only against the target, from a direction of your choice. The breeze grants the target a +2 circumstance bonus on saves against very hot conditions, severe heat, and saves against clouds, vapors, and gases (such as cloudkill, stinking cloud, and inhaled poisons). There must be air present to use this spell.
Source: Advanced Class Guide
Get Help (DC 20): With this trick, a trainer can designate a number of creatures up to the animal’s Intelligence score as “help.” When the command is given, the animal attempts to find one of those creatures and bring it back to the handler, even if that means journeying a long distance to the last place it encountered the target creature.
! Giant Centipede
|N Medium vermin|
|''Init'' +- ''Senses'' [[Darkvision]] 60 ft ''Perception'' +4|
|!Defense |
|''AC'' 14, touch 12, flat-footed 12 |
|''hp'' 5 (1d8+1) |
|''Fort'' +3, ''Ref'' +2, ''Will'' +0 |
|''Immunities'' [[Mind-Affecting]] effects |
|!Offense |
|''Speed'' 40 ft., climb 40 ft. |
|''Melee'' bite +2 (1d6-1 plus poison) |
|''Special Attacks'' [[Poison]] |
|!Statistics |
|''Str'' 9, ''Dex'' 15, ''Con'' 12, ''Int'' -, ''Wis'' 10, ''Cha'' 2 |
|''Base Attack'' +0, ''CMB'' +2, ''CMD'' 11 (can't be [[Tripped|Trip]]) |
|''Feats'' Weapon FinesseB |
|''Skills'' Climb +10, Perception +4, Stealth +10 |
|''Racial Modifiers'' +4 Perception, +8 Stealth |
|!Special Abilities |
|!''Poison'' (Ex) |
|Bite—injury; save Fort DC 13; frequency 1/round for 6 rounds; effect 1d3 Dex damage; cure 1 save. The save DC is Constitution-based and includes a +2 racial bonus. |
Giant centipedes attack nearly any living creatures with their poisonous jaws. These creatures adapt to many environments and feed voraciously on the local fauna, including humanoids. The coloration of giant centipedes mirrors that of normal centipedes and spans the spectrum, ranging from dull hues to bright reds and fiery oranges
! Giant Crab
|N Medium vermin (aquatic) |
|''Init'' +- ''Senses'' [[Darkvision]] 60 ft ''Perception'' +4|
|!Defense |
|''AC'' 16, touch 11, flat-footed 15 |
|''hp'' 19 (3d8+6) |
|''Fort'' +5, ''Ref'' +2, ''Will'' +1 |
|''Immunities'' [[Mind-Affecting]] effects |
|!Offense |
|''Speed'' 30 ft., swim 20 ft. |
|''Melee'' 2 claws +4 (1d4+2 plus grab) |
|''Special Attacks'' [[Constrict]] (1d4+2) |
|!Statistics |
|''Str'' 15, ''Dex'' 13, ''Con'' 14, ''Int'' -, ''Wis'' 10, ''Cha'' 2 |
|''Base Attack'' +2, ''CMB'' +4 (+8 grapple), ''CMD'' 15 (27 vs. [[Trip]]) |
|''Feats'' |
|''Skills'' Perception +4, Swim +10 |
|''Racial Modifiers'' +4 Perception |
|''SQ'' water dependency |
|!Special Abilities |
|!''Water Dependency'' (Ex) |
|Giant crabs can survive out of the water for 1 hour per point of Constitution. Beyond this limit, a giant crab runs the risk of suffocation, as if it were drowning. |
Giant crabs behave much like their smaller cousins, feeding on both plant material like algae and fungus and animal matter such as fish, seabirds, and even unwary humanoids. The coloration of a giant crab’s hard exoskeleton varies widely depending on species, and over time even shifts in response to its diet.
! Giant Frog
|N Medium animal |
|''Init'' +1 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +3|
|!Defense |
|''AC'' 12, touch 11, flat-footed 11 |
|''hp'' 15 (2d8+6) |
|''Fort'' +6, ''Ref'' +6, ''Will'' -1 |
|!Offense |
|''Speed'' 30 ft., swim 30 ft. |
|''Melee'' bite +3 (1d6+2 plus grab) or tongue +3 touch (grab) |
|''Space'' 5, ''Reach'' 5 (15 with tongue) |
|''Special Attacks'' [[Pull]] (tongue, 5 ft), [[Swallow Whole]] (1d4 bludgeoning damage, AC 10, 1 hp), tongue |
|!Statistics |
|''Str'' 15, ''Dex'' 13, ''Con'' 16, ''Int'' 1, ''Wis'' 8, ''Cha'' 6 |
|''Base Attack'' +1, ''CMB'' +3 (+7 grapple), ''CMD'' 14 (18 vs. [[Trip]]) |
|''Feats'' Lightning Reflexes |
|''Skills'' Acrobatics +9 (+13 jumping), Perception +3, Stealth +5, Swim +10 |
|''Racial Modifiers'' +4 Acrobatics (+8 jumping), +4 Stealth |
|!Special Abilities |
|!''Tongue'' (Ex) |
|A giant frog’s tongue is a primary attack with reach equal to three times the frog’s normal reach (15 feet for a Medium giant frog). A giant frog’s tongue deals no damage on a hit, but can be used to grab. A giant frog does not gain the grappled condition while using its tongue in this manner. |
Giant frogs have razor-sharp teeth lining their mouths. They are 6 feet long and weigh 200 pounds.
! Giant Soldier Ant
|N Medium vermin |
|''Init'' +- ''Senses'' [[Darkvision]] 60 ft, [[Scent]] ''Perception'' +5|
|!Defense |
|''AC'' 15, touch 10, flat-footed 15 |
|''hp'' 18 (2d8+9) |
|''Fort'' +6, ''Ref'' +0, ''Will'' +1 |
|''Immunities'' [[Mind-Affecting]] effects |
|!Offense |
|''Speed'' 50 ft., climb 20 ft. |
|''Melee'' bite +3 (1d6+2 plus grab), sting +3 (1d4+2 plus poison) |
|!Statistics |
|''Str'' 14, ''Dex'' 10, ''Con'' 17, ''Int'' -, ''Wis'' 13, ''Cha'' 11 |
|''Base Attack'' +1, ''CMB'' +3 , ''CMD'' 13 (21 vs. [[Trip]]) |
|''Feats'' ToughnessB |
|''Skills'' Climb +10, Perception +5, Survival +5 |
|''Racial Modifiers'' +4 Perception, +4 Survival |
|!Special Abilities |
|!''Poison'' (Ex) |
|Sting—injury; save Fort DC 14; frequency 1/round for 4 rounds; effect 1d2 Str; cure 1 save. |
Giant ants are as industrious as their normal-sized kin. While their nests generally don’t consist of thousands, their greatly increased size more than compensates.
! Giant Spider
|N Medium vermin |
|''Init'' +- ''Senses'' [[Darkvision]] 60 ft, [[Tremorsense]] 60 ft ''Perception'' +4 (+8 in webs)|
|!Defense |
|''AC'' 14, touch 13, flat-footed 11 |
|''hp'' 16 (3d8+3) |
|''Fort'' +4, ''Ref'' +4, ''Will'' +1 |
|''Immunities'' [[Mind-Affecting]] effects |
|!Offense |
|''Speed'' 30 ft., climb 30 ft. |
|''Melee'' bite +2 (1d6 plus poison) Special Attack web (+5 ranged, DC 12, hp 2) |
|''Special Attacks'' [[Web]] (+5 ranged, DC 12, hp 2) |
|!Statistics |
|''Str'' 11, ''Dex'' 17, ''Con'' 12, ''Int'' -, ''Wis'' 10, ''Cha'' 2 |
|''Base Attack'' +2, ''CMB'' +2 , ''CMD'' 15 (27 vs. [[Trip]]) |
|''Feats'' |
|''Skills'' Climb +16, Perception +4 (+8 in webs), Stealth +7 (+11 in webs) |
|''Racial Modifiers'' +4 Perception, +4 Stealth (+8 in webs), +16 Climb |
|!Special Abilities |
|!''Poison'' (Ex) |
|Bite—injury; save Fort DC 14; frequency 1/round for 4 rounds; effect 1d2 Strength damage; cure 1 save. |
The statistics above are for a web-spinning spider. Hunting spiders lose the web ability but gain a +8 racial modifier on Acrobatics checks. All giant spiders have a +2 racial bonus on poison save DCs.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Giant Strength
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, DF
Range: personal
Targets: you
Duration: 1 min./level
Saving Throw: Spell Resistance:
"""
This spell causes instant growth of a humanoid creature, doubling its height and multiplying its weight by 8. The subject also takes on the brutish appearance and characteristics of giant-kind. This increase changes the creature’s size category to the next larger one. The target gains a +2 size bonus to Strength, a –2 size penalty to Dexterity (to a minimum of 1), and a –1 penalty on attack rolls and AC due to its increased size. A humanoid creature whose size increases to Large has a space of 10 feet and a natural reach of 10 feet. This spell does not change the target’s speed. If insufficient room is available for the desired growth, the creature attains the maximum possible size and may make a Strength check (using its increased Strength) to burst any enclosures in the process. If it fails, it is constrained without harm by the materials enclosing it—the spell cannot be used to crush a creature by increasing its size. All equipment worn or carried by a creature is similarly enlarged by the spell. Melee weapons affected by this spell deal more damage (see page 145). Other magical properties are not affected by this spell. Any gianted item that leaves a gianted creature’s possession (including a projectile or thrown weapon) instantly returns to its normal size. This means that thrown and projectile weapons deal their normal damage. Magical properties of gianted items are not increased by this spell. Multiple magical effects that increase size do not stack. Giant Strength counters and dispels reduce person.
Source: Homebrew
! Giant Worker Ant
|N Medium vermin |
|''Init'' +- ''Senses'' [[Darkvision]] 60 ft, [[Scent]] ''Perception'' +5|
|!Defense |
|''AC'' 15, touch 10, flat-footed 15 |
|''hp'' 18 (2d8+9) |
|''Fort'' +6, ''Ref'' +0, ''Will'' +1 |
|''Immunities'' [[Mind-Affecting]] effects |
|!Offense |
|''Speed'' 50 ft., climb 20 ft. |
|''Melee'' bite +3 (1d6+2) |
|!Statistics |
|''Str'' 14, ''Dex'' 10, ''Con'' 17, ''Int'' -, ''Wis'' 13, ''Cha'' 11 |
|''Base Attack'' +1, ''CMB'' +3 , ''CMD'' 13 (21 vs. [[Trip]]) |
|''Feats'' ToughnessB |
|''Skills'' Climb +10, Perception +5, Survival +5 |
|''Racial Modifiers'' +4 Perception, +4 Survival |
|!Special Abilities |
Giant ants are as industrious as their normal-sized kin. While their nests generally don’t consist of thousands, their greatly increased size more than compensates.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Giant's Wrath
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 swift action V, S, M (pebbles to be transmuted)
Range: personal
Targets: one pebble/3 levels
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
You infuse a handful of stone pebbles with powerful transmutation magic. For the duration of the spell, you can hurl one pebble as an attack action that provokes attacks of opportunity. The instant the pebble leaves contact with your hand, its size and the force of your throw increase dramatically, as the pebble transforms into a boulder. The boulder has a range increment of 120 feet, and you must succeed on a ranged attack to strike a target with the boulder. If you hit the target, the boulder deals 2d6 points of bludgeoning damage + your Str modifier. You gain an insight bonus equal to your caster level on attack rolls and damage rolls (maximum +10) with these boulders. If you drop a pebble or give it to another creature, the pebbles' magic dissipates harmlessly.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Girallon's Blessing
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (a few strands of girallon hair)
Range: touch
Targets: creature touched
Duration: 10 min./level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
You give the subject an additional pair of arms. Each of its arms—new and old—ends in a clawed hand with fingers and an opposable thumb. The creature's original arms (if any) are its primary arms, and new limbs are secondary limbs (if the subject had no arms, the arms created by the spell are its primary arms). The creature gains four claw attacks, each using its base attack bonus + its Str modifier for attack rolls. Each claw deals 1d4 points of damage + the subject's Str modifier, and if an opponent is struck by two or more claws in 1 round, the subject can rend it for an additional 2d4 points of damage + 1-1/2 times its Str modifier. A creature cannot use normal weapons and the claw attacks in the same round, and the subject does not gain additional claw attacks from a high base attack bonus.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Gird Ally
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one summoned creature you control/level, no two of which can be more than 30 ft. apart
Duration: 1 round/level (D)
Saving Throw: none Spell Resistance: no
"""
You create a magical field around summoned creatures you control that deflects attacks made against them. The targets gain a deflection bonus to their AC equal to 1 + 1 for every 6 caster levels you possess (maximum +4 deflection bonus at 18th level). A summoner can target his eidolon with this spell.
Source: Monster Summoner's Handbook
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Glide
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M/DF (a leaf )
Range: personal
Targets: you
Duration: until landing or 1 minute/level (D)
Saving Throw: Spell Resistance:
"""
You take no damage from falls (as if from feather fall). In addition, you can move up to 5 feet in any horizontal direction for every 1 foot you fall, at a speed of 60 feet per round. You cannot use this spell to actually gain height, merely coast in other directions as you fall. If subjected to a strong wind or any other effect that causes you to rise you can take advantage of it in order to increase the distance you can glide. The spell ends as soon as your feet touch the ground regardless of its remaining duration. If the spell expires while you are still in the air you fall the remaining distance as normal.
Source: APG
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
! Goblin Dog
|N Medium animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +1|
|!Defense |
|''AC'' 13, touch 12, flat-footed 11 |
|''hp'' 9 (1d8+5) |
|''Fort'' +4, ''Ref'' +4, ''Will'' +1 |
|''Immunities'' [[Disease]] |
|!Offense |
|''Speed'' 50 ft. |
|''Melee'' bite +2 (1d6+3 plus allergic reaction) |
|!Statistics |
|''Str'' 15, ''Dex'' 14, ''Con'' 15, ''Int'' 2, ''Wis'' 12, ''Cha'' 8 |
|''Base Attack'' +0, ''CMB'' +2 , ''CMD'' 14 (18 vs. [[Trip]]) |
|''Feats'' Toughness |
|''Skills'' Stealth +6 |
|!Special Abilities |
|!''Allergic Reaction'' (Ex) |
|A goblin dog’s dander is highly irritating to all creatures save those with the goblinoid subtype. A non-goblinoid creature damaged by a goblin dog’s bite, who deals damage to a goblin dog with a natural weapon or unarmed attack, or who otherwise comes into contact with a goblin dog (including attempts to grapple or ride the creature) must make a DC 12 Fortitude save or break out in an itching rash. A creature affected by this rash takes a –2 penalty to Dexterity and Charisma for 1 day (multiple allergic reactions do not stack). Remove diseaseor any magical healing removes the rash instantly. This is a disease effect. The save DC is Constitution-based. |
Loathed by men and beasts alike, goblin dogs are ugly, stinking, craven, and foul-tempered. It’s no surprise that goblins find kindred spirits in these shunned, disgusting beasts. Constantly itching, afflicted with a species-wide mange exacerbated by prolific dander, even the healthiest goblin dog looks sickly and starved.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Goodberry
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, DF
Range: touch
Targets: 2d4 fresh berries touched
Duration: 1 day/level
Saving Throw: none Spell Resistance: yes
"""
Casting goodberry makes 2d4 freshly picked berries magical. You (as well as any other druid of 3rd or higher level) can immediately discern which berries are affected. Each transmuted berry provides nourishment as if it were a normal meal for a Medium creature. The berry also cures 1 point of damage when eaten, subject to a maximum of 8 points of such curing in any 24-hour period.
Source: PFRPG Core
! Gorilla
|N Large animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +8|
|!Defense |
|''AC'' 14, touch 11, flat-footed 12 |
|''hp'' 19 (3d8+6) |
|''Fort'' +7, ''Ref'' +5, ''Will'' +2 |
|!Offense |
|''Speed'' 30 ft., climb 30 ft. |
|''Melee'' 2 slams +3 (1d6+2) |
|''Space'' 10, ''Reach'' 10 |
|!Statistics |
|''Str'' 15, ''Dex'' 15, ''Con'' 14, ''Int'' 2, ''Wis'' 12, ''Cha'' 7 |
|''Base Attack'' +2, ''CMB'' +5 , ''CMD'' 17 |
|''Feats'' Great Fortitude, Skill Focus (Perception) |
|''Skills'' Acrobatics +6, Climb +14, Perception +8 |
|!Special Abilities |
An adult male ape is 8 feet tall and can weigh as much as 400 pounds. While generally shy and peaceful creatures when left to their own business, gorillas are territorial and become highly aggressive when provoked. This stat block can generally be used for any of the larger types of primates, such as gorillas—for smaller apes like orangutans and chimpanzees, apply the young simple template. Even smaller primates should use the stats for monkeys.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Gozreh's Trident
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, DF
Range: 0 ft.
Effect: trident-like bolt of electricity
Duration: 1 minute/level (D)
Saving Throw: none Spell Resistance: yes
"""
A 4-foot-long, blazing, forked bolt of electricity springs forth from your hand. You wield this spear-like bolt as if it were a trident (you are considered proficient with the bolt). Attacks with Gozreh's trident are melee touch attacks. The bolt deals 1d8 points of electricity damage + 1 point per 2 caster levels (maximum +10). Since the bolt is immaterial, your Strength modifier does not apply to the damage. The bolt can ignite combustible materials such as parchment, straw, dry sticks, and cloth.
Source: Inner Sea Gods
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Grasp
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
divination
1 immediate action V
Range: personal
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
You can cast this spell as an immediate action when you fail a Climb check and would fall. You can immediately attempt another Climb check as a free action at a -2 penalty. Each successive use of this spell in a particular situation increases the penalty by 2. If successful, you don't fall, but you don't progress at climbing.
Source: Heroes Of The Darklands
The Great Glacier, also called Pelvuria was a large mass of frozen land in northeast [[Faerûn|Faerun]].
!! History
It was created in -2550 DR when the god [[Ulutiu]] laid himself to rest in his ice barge in the Cold Ocean, a favourite inland sea of his. The barge sank soon after and the Necklace of Ulutiu, an artifact that he wore, encased his body in ice when his divinity had departed to the Astral Sea.
The Cold Ocean became completely frozen by the necklace's magic over the next seventy five years then, due to a lack of interference from the giant kingdom of Ostoria, encroached upon the land as well. The glacier eventually destroyed the remains of Ostoria (the city of Gharreil was a testimony to its former existence) but was held in check by the High Magic of the elves of Lethyr. Over three thousand years later, the Ice Queen Iyraclea was granted the power to overcome the High Magic by Auril and the glacier began to grow larger once more.
<<<
Again and again, the pattern of history reveals a simple truth—that history has no pattern.
— Inum, Iulutiun philosopher
<<<
However, some rumors credited the extremely old gold dragon Protanther the creation of the glacier, as one of his plans to get rid of the evil from Vaasa. Although there was no absolute proof of this, given Protanther outstanding magical abilities, such a feat was not impossible for him, giving credence to this rumor.
It is not known exactly why she stopped, but Iyraclea ceased her magical ministrations to the Glacier, causing it to begin to retreat in 1038 DR, four hundred years after her original icy expansion, suddenly clearing massive swathes of formerly frozen land on its southern edge.[9] The Glacier continued to retreat more and more, but much slower, and when the Ice Queen died in 1373 DR, there was nobody to reverse the process.
!! Inhabitants
As of 1359 DR, it hosted several distinct societies in [[Alpuk]], [[Angalpuk]], [[Nakvaligach]], and [[Novularond]]. This included three of the four [[Ulutiun|Ulutiuns]] peoples: the [[Iulutiun]] people of [[Alpuk]], the [[Angulutiun]] of [[Angalpuk]], and the [[Nakulutiun]] people of [[Nakvaligach]]. In addition, white dragons and frost giants were known to live there.
!! Important Locations
!!! Regions
[[Alpuk]]
Also called the Central Basin, Alpuk was the largest of the three regions of the Great Glacier. Mostly an open, vast tundra, it also included the Novularond mountains and the Lugalpgotak Sea and the Nakalpgotak Sea within its borders. The Uppuk River formed its northern border, the Tuutsaas Chain in the west, and the Lugsaas Chain in the south and east.
[[Angalpuk]]
Another tundra basin, Angalpuk was smaller than Alpuk. It was east of Alpuk, separated from it by the Lugsaas Chain, and bordered in the south and east by the Angsaas Chain. Angalpuk was also home to several forests.
[[Nakvaligach]]
Sometimes called the "Northern Barrens", Nakvaligach was covered in rocky, mounatinous terrain and icy crevasses. It was located north of Alpuk across the Uppuk River. Its western and eastern borders were Tuutsaas Chain and the Angsaas Chain, respectively.
!!! Mountains
[[The Tuutsaas Chain]]
One of the three great mountain chains that form the borders of the Great Glacier, the Tuutsaas Chain is the western border of both Alpuk and Nakvaligach. It meets the Lugsaas Chain in the southwest.
[[The Lugsaas Chain]]
The longest and tallest of the three mountain chains, the Lugsaas Chain forms the southern border of Alpuk and the Great Glacier.
[[The Angsaas Chain]]
The eastern border of both the Great Glacier, Angalpuk, and Nakvaligach, it overlooks the plains of Sossal to the east.
[[The Novularond]]
A massive mountain range in the northeastern corner of the Alpuk basin, the center of the Glacier.
[[The Surykyk Range]]
A small mountain range in south Alpuk.
[[The Lugalpgotak Range]]
Another small mountain range in Alpuk, the Lugalpgotak Range was situated on the northern shore of the sea of the same name.
!!! Seas
[[The Lugalpgotak Sea]]
The largest body of water in Pelvuria, this inland sea was located in the middle of Alpuk.
[[The Nakalpgotak Sea]]
The second-largest body of water on the Glacier, it was located in northeastern Alpuk between the Novularond mountains and Nakvaligach.
[[The Lugotak Sea]]
An inland sea located in western Alpuk.
[[The Igotak Sea]]
A triangular-shaped sea northeast of the Glacier of Ulutiu, in western Nakvuligach.
[[The Ahtahqugotak Sea]]
The smallest inlands sea in the Glacier, it was located in the Ibelgrak Valley in south Angalpuk. Notably, it was surrounded by forests.
!!! Other Locations
[[The Glacier of Ulutiu]]
A 1,000 foot high wall of ice covered in glowing runes created by Ulutiu. It was located just north of the Uppuk River in southwestern Nakvaligach.
[[The Uppuk River]]
The longest river on the Glacier, it formed most of the boundary between Alpuk and Nakvaligach
[[Ibelgrak Valley]]
A forested valley in south Angalpuk, it was avoided by the Angulutiuns despite the abundant wildlife
[[Iyraclea's Castle]]
Formed from magical ice, it was occupied by Zaol, an outcast angel, after the Ice Queen's death.
[[Vaalathrim]]
A lost city, freed from the Glacier by its retreat, full of undead that feed on the heat given off by the living.
[[Portal to the Ruins of Gharreil]]
!!! Settlements
[[Jukum]]
[[Lilinuk]]
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Greater Animal Aspect
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation (polymorph)
1 standard action V, S, M/DF (a part of the animal)
Range: personal
Targets: you
Duration: 1 minute/level (D)
Saving Throw: none Spell Resistance: yes (harmless)
"""
This spell functions like animal aspect, except you can either gain two aspects at once or one aspect that adds effects to the aspects that animal aspect grants, as described below. Frog: You gain a Swim speed equal to half your normal speed, and all the benefits of having a swim speed. Gorilla: You gain a +2 competence bonus on Perception checks, and a +1 competence bonus on Fortitude saves. Monkey: You gain a +4 competence bonus on Acrobatics checks. Otter: Your swim speed increases to your full normal speed, and you need not make concentration checks to cast spells underwater. Raccoon: Your competence bonuses on Disable Device, Sleight of Hand, and Stealth checks increase to +4. Raptor: Your enhancement bonus to speed increases to +30 feet, and you gain the benefit of the Run feat. Tree Lizard: You gain a +4 competence bonus on Stealth checks.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Greater Detect Magic
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 standard action V, S
Range: 60 ft.
Area: cone-shaped emanation
Duration: concentration, up to 1 minute/level (D)
Saving Throw: none Spell Resistance: no
"""
This spell functions as detect magic, except that you can glean much more information from the magical auras that you find, and those auras can be found after a much greater length of time. You can detect a lingering aura for up to 1 day per caster level you have, regardless of the aura's original strength. Additionally, when you use a standard action to concentrate on this spell, you can also study a creature within the spell's area and attempt a Spellcraft check in order to determine the last spell that the creature cast by identifying lingering traces that the spell left in the caster's aura. The DC to identify the spell is equal to 20 + the creature's caster level. Finally, you are able to locate and analyze the signature flourishes in a magical aura that allow you to match a spell to the person who cast it. In order to find these identifiers in a spell's aura, you must spend 1 round focusing on that spell in particular, and succeed at an opposed Knowledge (arcana) check against the caster (or a Knowledge [arcana] check with a DC equal to 15 + the spell level if the caster wants her work to be identified and emphasizes these unique elements rather than obscuring them). Once you learn a caster's set of identifiers, you can remember them as easily as a face or a voice. You can recognize this signature if you succeed at a Spellcraft check when later identifying a spell to determine whether or not that spell was cast by the same individual. The spell greater magic aura (see page 219) can obfuscate this information, making it seem that someone else cast the spell. Greater detect magic grants a saving throw against magic aura (but not greater magic aura).
Source: Ultimate Intrigue
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Greater Longstrider
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (a pinch of dirt)
Range: personal
Targets: you
Duration: 1 hour/level (D)
Saving Throw: Spell Resistance:
"""
This functions as longstrider, except it gives you a +20-foot enhancement bonus to your base speed and a +10-foot enhancement bonus to your other modes of movement (burrow, climb, fly, swim, and so on). It does not affect movement modes you do not actually have-for example, if you do not have a swim speed, this spell does not grant you a swim speed.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Greater Magic Fang
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Targets: one living creature
Duration: 1 hour/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like magic fang, except that the enhancement bonus on attack and damage rolls is +1 per four caster levels (maximum +5). This bonus does not allow a natural weapon or unarmed strike to bypass damage reduction aside from magic. Alternatively, you may imbue all of the creature's natural weapons with a +1 enhancement bonus (regardless of your caster level). Greater magic fang can be made permanent with a permanency spell.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Greater Thunderstomp
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S
Range: 60 ft.
Area: 60-ft. line
Duration: instantaneous
Saving Throw: none Spell Resistance: yes
"""
This spell functions as thunderstomp, except as noted. It allows you target multiple creatures with this spell, including creatures more than one size category larger than you. When you attempt the combat maneuver check, apply its result to each creature within the area.
Source: Advanced Class Guide
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
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Greenfire
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S, DF
Range: medium (100 ft. + 10 ft./level)
Area: one 5-ft. cube/level (S)
Duration: 1 round
Saving Throw: Reflex half; see text Spell Resistance: yes
"""
You evoke from the earth an upwelling of virulent green energy, burning any creature in the spell's area for 2d6 points of acid damage plus 1 point per caster level (maximum 2d6 +10). Any creature in the affected area when the spell is cast is entitled to a Reflex save for half damage; any creature that enters the area of the spell while the greenfire is still present gets no saving throw.
The greenfire does not harm natural vegetation, ground cover, or plant creatures, if you so desire.
Source: Unapproachable East
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Greensight
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a leaf)
Range: touch
Targets: creature touched
Duration: 10 minutes/level
Saving Throw: Will negates (harmless) Spell Resistance: no
"""
The target of this spell gains the ability to see up to 60 feet through thick plant matter as though it were transparent. Greenery, leaves, and vines-even lichen, moss, and slime-offer no concealment to the recipient's sight, though her vision still can be blocked by solid wood, such as trees or wooden structures. Undergrowth does not grant concealment to a creature against a target of the effects of greensight.
Source: Ultimate Wilderness
! Grizzly Bear
|N Large animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +6|
|!Defense |
|''AC'' 16, touch 10, flat-footed 15 |
|''hp'' 42 (5d8+20) |
|''Fort'' +8, ''Ref'' +5, ''Will'' +2 |
|!Offense |
|''Speed'' 40 ft. |
|''Melee'' 2 claws +7 (1d6+5 plus grab), bite +7 (1d6+5) |
|''Space'' 10, ''Reach'' 5 |
|!Statistics |
|''Str'' 21, ''Dex'' 13, ''Con'' 19, ''Int'' 2, ''Wis'' 12, ''Cha'' 6 |
|''Base Attack'' +3, ''CMB'' +9 (+13 grapple), ''CMD'' 20 (24 vs. [[Trip]]) |
|''Feats'' Endurance, Run, Skill Focus (Survival) |
|''Skills'' Perception +6, Survival +5, Swim +14 |
|''Racial Modifiers'' +4 Swim |
|!Special Abilities |
A large, powerful omnivore, the grizzly bear inhabits many of the world’s forested hills. Equally happy consuming nuts, berries, fish, or small mammals, the grizzly is nonetheless fiercely territorial, and will chase off—or, failing that, kill and eat—any intruders it views as competition.
When faced with a foe or small group of threats, the grizzly attempts to subdue or kill with its claws. When it can, the bear tries to grab a single target to deal continual damage until that target is dead, unconscious, or escapes.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Groundswell
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: touch
Targets: creature touched
Duration: 1 minute/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
This spell allows the target to cause the ground to rise up beneath him. As a swift action, the target can cause the ground to rise 5 feet, while all adjacent squares are treated as steep slopes (Core Rulebook 428). The groundswell precludes flanking from creatures standing at lower elevations than the target. If the target moves after creating a groundswell, the ground returns to its normal elevation at the end of his turn; otherwise, it remains in place until the target moves or uses a swift action to return the ground to normal. A groundswell cannot increase elevation of the ground beyond 5 feet.
Source: Advanced Race Guide
Guard (DC 20) The animal stays in place and prevents others from approaching.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Guidance
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
divination
1 standard action V, S
Range: touch
Targets: creature touched
Duration: 1 minute or until discharged
Saving Throw: Will negates (harmless) Spell Resistance: yes
"""
This spell imbues the subject with a touch of divine guidance. The creature gets a +1 competence bonus on a single attack roll, saving throw, or skill check. It must choose to use the bonus before making the roll to which it applies.
Source: PFRPG Core
Guide (DC 15): The companion can serve as a guide to a character that is blinded or otherwise unable to see. While serving as a guide, the companion remains adjacent to the guided creature at all times, readying an action each round to move when that creature moves. This allows the guided creature to automatically succeed at Acrobatics checks to move at more than half speed while blinded. Additionally, the companion identifies obstacles in the guided creature’s path and pushes them, pulls them, or otherwise signals to the creature how to avoid them, allowing the guided creature to locate and move around obstacles such as hazards, opponents, and other terrain features as though she were able to see them (though she can’t distinguish between obstacles). Finally, while serving as a guide, the companion indicates to the guided creature the presence and direction of any adjacent allies, allowing the guided creature to pinpoint the locations of such creatures. The companion can serve as a guide only as long as it is able to see in some fashion, and its ability to detect and avoid creatures and obstacles is limited by what it is able to perceive normally.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Gust Of Wind
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S
Range: 60 ft.
Effect: line-shaped gust of severe wind emanating out from you to the extreme of the range
Duration: 1 round
Saving Throw: Fortitude negates Spell Resistance: yes
"""
This spell creates a severe blast of air (approximately 50 mph) that originates from you, affecting all creatures in its path. All flying creatures in this area take a -4 penalty on Fly skill checks. Tiny or smaller flying creatures must make a DC 25 Fly skill check or be blown back 2d6 x 10 feet and take 2d6 points of damage. Small or smaller flying creatures must make a DC 20 Fly skill check to move against the force of the wind. A Tiny or smaller creature on the ground is knocked down and rolled 1d4 x 10 feet, taking 1d4 points of nonlethal damage per 10 feet. Small creatures are knocked prone by the force of the wind. Medium or smaller creatures are unable to move forward against the force of the wind unless they succeed at a DC 15 Strength check. Large or larger creatures may move normally within a gust of wind effect. This spell can't move a creature beyond the limit of it's range. Any creature, regardless of size, takes a -4 penalty on ranged attacks and Perception checks in the area of a gust of wind. The force of the gust automatically extinguishes candles, torches, and similar unprotected flames. It causes protected flames, such as those in lanterns, to dance wildly and has a 50% chance to extinguish those lights. In addition to the effects noted, a gust of wind can do anything that a sudden blast of wind would be expected to do. It can create a stinging spray of sand or dust, fan a large fire, overturn delicate awnings or hangings, heel over a small boat, and blow gases or vapors to the edge of its range. Gust of wind can be made permanent with a permanency spell.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Gusting Sphere
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Effect: 5-ft.-diameter sphere of air
Duration: 1 round/level
Saving Throw: Fortitude negates (object) or Reflex negates; see text Spell Resistance: yes
"""
A swirling ball of wind rolls in whichever direction you point, hurling those it strikes with great force. The sphere is treated in all ways as an area of severe wind (Core Rulebook 439), applying a -4 penalty on ranged weapon attacks that pass through it. The sphere moves 30 feet per round. As part of this movement, it can ascend or jump up to 30 feet to strike a target. If it enters a space containing a Medium or smaller creature, it stops moving for that round and generates a sharp thrust of wind to bull rush the creature. The sphere's CMB for bull rush combat maneuvers uses your caster level in place of its base attack bonus, with a +2 bonus for its Strength score (14). Whether or not the bull rush is successful, the creature takes 1d6 points of nonlethal bludgeoning damage from the attack. If the bull rush fails, the creature is still subject to the severe winds from the sphere as long as they remain in the same square as it. A gusting sphere rolls over objects or barriers that are less than 4 feet tall. The sphere moves as long as you actively direct it (a move action for you); otherwise, it merely stays at rest. A gusting sphere immediately dissipates if it exceeds the spell's range.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hairline Fractures
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M (a broken twig)
Range: touch
Targets: 5-foot-square section of stone or a creature with the earth subtype
Duration: 1 round/level
Saving Throw: Fortitude negates (object) Spell Resistance: yes (object)
"""
With a single touch, you create temporary hairline fractures in a piece of stone or a creature with the earth subtype. If you cast this spell on a section of stone, you reduce its hardness to 5 and its hit points to 10/inch of thickness. If you cast this spell on a creature with the earth subtype, that creature takes a -2 penalty to AC for the spell's duration. Make whole reverses this spell's effect.
Source: Inner Sea Gods
!! Check
The DC depends on what you are trying to do.
|Task |Handle Animal DC|
|Handle an animal | 10 |
|“Push” an animal | 25 |
|Teach an animal a trick | 15 or 20^^1^^ |
|Train an animal for a general purpose | 15 or 20^^1^^ |
|Rear a wild animal | 15 + HD of animal |
^^1^^ See the specific trick or purpose below.
!! Common Uses
''Handle an Animal''
This task involves commanding an animal to perform a task or trick that it knows. If the animal is wounded or has taken any nonlethal damage or ability score damage, the DC increases by 2. If your check succeeds, the animal performs the task or trick on its next action.
''Push an Animal''
To push an animal means to get it to perform a task or trick that it doesn’t know but is physically capable of performing. This category also covers making an animal perform a forced march or forcing it to hustle for more than 1 hour between sleep cycles. If the animal is wounded or has taken any nonlethal damage or ability score damage, the DC increases by 2. If your check succeeds, the animal performs the task or trick on its next action.
''Teach an Animal a Trick''
You can teach an animal a specific trick with one week of work and a successful Handle Animal check against the indicated DC. An animal with an Intelligence score of 1 can learn a maximum of three tricks, while an animal with an Intelligence score of 2 can learn a maximum of six tricks.
!! Common Tricks
The following tricks can be taught to animals by training the animal for a week and making a successful Handle Animal skill check against the listed DC.
<$list filter="[tag[Trick]sort[title]]">
<$transclude mode="block"/>
</$list>
!! Train an Animal for a Purpose
Rather than teaching an animal individual tricks, you can simply train it for a general purpose. Essentially, an animal’s purpose represents a preselected set of known tricks that fit into a common scheme, such as guarding or heavy labor. The animal must meet all the normal prerequisites for all tricks included in the training package. If the package includes more than three tricks, the animal must have an Intelligence score of 2.
An animal can be trained for only one general purpose, though if the creature is capable of learning additional tricks (above and beyond those included in its general purpose), it may do so. Training an animal for a purpose requires fewer checks than teaching individual tricks does, but no less time.
|General Purpose | DC |
|Combat Training (or “Combat Riding”) | 20 |
|Fighting | 20 |
|Guarding | 20 |
|Heavy labor | 15 |
|Hunting | 20 |
|Performance | 15 |
|Riding | 15 |
Air Support (DC 20): An animal trained in air support knows the attack, bombard, and deliver tricks.
Burglar (DC 25): An animal trained as a burglar knows the come, fetch, maneuver (steal), seek, and sneak tricks. You can order it to steal a specific item you point out.
Combat Training (DC 20) An animal trained to bear a rider into combat knows the tricks attack, come, defend, down, guard, and heel. Training an animal for combat riding takes 6 weeks. You may also “upgrade” an animal trained for riding to one trained for combat by spending 3 weeks and making a successful DC 20 Handle Animal check. The new general purpose and tricks completely replace the animal’s previous purpose and any tricks it once knew. Many horses and riding dogs are trained in this way.
Fighting (DC 20) An animal trained to engage in combat knows the tricks attack, down, and stay. Training an animal for fighting takes three weeks.
Guarding (DC 20) An animal trained to guard knows the tricks attack, defend, down, and guard. Training an animal for guarding takes four weeks.
Heavy Labor (DC 15) An animal trained for heavy labor knows the tricks come and work. Training an animal for heavy labor takes two weeks.
Hunting (DC 20) An animal trained for hunting knows the tricks attack, down, fetch, heel, seek, and track. Training an animal for hunting takes six weeks.
Liberator (DC 25): An animal trained in liberating knows the break out, flee, and get help tricks.
Performance (DC 15) An animal trained for performance knows the tricks come, fetch, heel, perform, and stay. Training an animal for performance takes five weeks.
Riding (DC 15) An animal trained to bear a rider knows the tricks come, heel, and stay. Training an animal for riding takes three weeks.
Servant (DC 20): An animal trained as a servant knows the deliver, exclusive, and serve tricks.
!! Rear a Wild Animal
To rear an animal means to raise a wild creature from infancy so that it becomes domesticated. A handler can rear as many as three creatures of the same kind at once. A successfully domesticated animal can be taught tricks at the same time it’s being raised, or it can be taught as a domesticated animal later.
!! Action
Varies. Handling an animal is a move action, while “pushing” an animal is a full-round action. (A druid or ranger can handle her animal companion as a free action or push it as a move action.) For tasks with specific time frames noted above, you must spend half this time (at the rate of 3 hours per day per animal being handled) working toward completion of the task before you attempt the Handle Animal check. If the check fails, your attempt to teach, rear, or train the animal fails and you need not complete the teaching, rearing, or training time. If the check succeeds, you must invest the remainder of the time to complete the teaching, rearing, or training. If the time is interrupted or the task is not followed through to completion, the attempt to teach, rear, or train the animal automatically fails.
!! Retry?
Yes, except for rearing an animal.
!! Modifiers
Low Intelligence Non-Animals You can use this skill on a creature with an Intelligence score of 1 or 2 that is not an animal, but the DC of any such check increases by 5. Such creatures have the same limit on tricks known as animals do.
Animal Companions A druid or ranger gains a +4 circumstance bonus on Handle Animal checks involving her animal companion. In addition, a druid’s or ranger’s animal companion knows one or more bonus tricks, which don’t count against the normal limit on tricks known and don’t require any training time or Handle Animal checks to teach.
Special
Untrained If you have no ranks in Handle Animal, you can use a Charisma check to handle and push domestic animals, but you can’t teach, rear, or train animals. A druid or ranger with no ranks in Handle Animal can use a Charisma check to handle and push her animal companion, but she can’t teach, rear, or train other non-domestic animals.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hanspur's Flotsam Vessel
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation)
1 minute V, S, M (driftwood branch or river rat's tail)
Range: close (25 ft. + 5 ft./2 levels)
Effect: raft large enough for caster and one passenger/2 levels
Duration: 1 hour/level (D)
Saving Throw: none Spell Resistance: no
"""
This spell assembles a sturdy raft and oars from driftwood, reeds, and other river detritus. The smallest raft created by the spell is roughly 5 feet square, increasing by an additional 5 feet square for every 2 caster levels you possess. Each 5-foot section of the raft can carry two Medium passengers or 300 pounds of cargo. The vessel functions as a normal raft, except it is not slowed or damaged by nonmagical river hazards such as rapids or shallows, and it is always considered to be traveling downstream for the purpose of calculating travel speed, regardless of its actual direction.
Source: People Of The River
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Harmless Form
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation (polymorph)
1 standard action V, S
Range: touch
Targets: one willing animal companion, familiar, or spirit animal
Duration: 8 hours (D)
Saving Throw: Fort negates (harmless) Spell Resistance: yes (harmless)
"""
You transform the target into a harmless animal of the same approximate body type. The form assumed must be one considered unobtrusive by local communities, such as a cat, a dog, a hunting hawk, a horse, or a rat. This transformation can reduce the target by up to two size categories, but cannot make an animal smaller than Tiny. It cannot increase the size of the target or give it new natural attacks or new forms of movement. The spell otherwise functions as beast shape II.
Source: Heroes Of The Streets
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Harvest Season
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
1 minute V, S, M
Range: close (25 ft. + 5 ft./2 levels)
Targets: one plant
Duration: instantaneous; see text
Saving Throw: none Spell Resistance: no
"""
You cause an explosive burst of growth in a single plant, causing it to grow through a cycle of flower, fruit, or grain production as appropriate. If the plant is not one that normally produces food fit for humanoid consumption, it produces edible flowers under the effect of this spell. The plant produces enough food to nourish one Medium creature per caster level. Food harvested through this spell rots if not eaten within 24 hours. This spell nourishes, fertilizes, and pollinates the plant, and doesn't harm the plant in any way. This spell has no effect on plant creatures.
Source: Heroes Of The Streets
You are skilled at tending to the ailments of others.
!!Check
The DC and effect depend on the task you attempt.
!!Action
Providing first aid, treating a wound, or treating poison is a standard action. Treating a disease or tending a creature wounded by a spike growth or spike stones spell takes 10 minutes of work. Treating deadly wounds takes 1 hour of work. Providing long-term care requires 8 hours of light activity.
|!Task | !DC | !~AoO? |!Time |
|Identify drug/pharmaceutical | ? | ? | ? |
|Provide First aid | 15 | Yes^^1^^ |Standard Action |
|Provide Long-term care | 15 | – |8 hours |
|Treat wounds from caltrops, spike growth, or spike stones | 15 | – |10 minutes |
|Treat deadly wounds | 20 | – |1 hour |
|Treat poison | Poison’s save DC | Usually^^1^^ |Standard Action |
|Treat disease | Disease’s save DC| – |10 minutes |
^^1^^ Table: Actions in Combat states that administering First Aid provokes an attack of opportunity and using any skill that uses an action “usually” provokes an attack of opportunity.
!!Common Uses
!!Identify Drugs/Pharmaceuticals
The Heal skill is used to identify and understand pharmaceuticals. No further information was provided in the source material.
!! Provide First Aid
You usually use first aid to save a dying character. If a character has negative hit points and is losing hit points (at the rate of 1 per round, 1 per hour, or 1 per day), you can make him stable. A stable character regains no hit points but stops losing them. First aid also stops a character from losing hit points due to effects that cause bleed.
''Action/Time'': 1 standard action.
''Retry?'' You can always retry a check to provide first aid, assuming the target of the previous attempt is still alive.
!!Provide Long-Term Care
Providing long-term care means treating a wounded person for a day or more. If your Heal check is successful, the patient recovers hit points or ability score points (lost to ability damage) at twice the normal rate: 2 hit points per level for a full 8 hours of rest in a day, or 4 hit points per level for each full day of complete rest; 2 ability score points for a full 8 hours of rest in a day, or 4 ability score points for each full day of complete rest.
You can tend as many as six patients at a time. You need a few items and supplies (bandages, salves, and so on) that are easy to come by in settled lands. Giving long-term care counts as light activity for the healer. You cannot give long-term care to yourself.
''Action/Time'': 8 hours.
''Retry?'' Varies. Generally speaking, you can’t try a Heal check again without witnessing proof of the original check’s failure.
!!Treat Deadly Wounds*
Requirement: You must expend two uses from a healer’s kit to perform this task. You take a –2 penalty on your check for each use from a healer’s kit that you lack.
When treating deadly wounds, you can restore hit points to a damaged creature. Treating deadly wounds restores 1 hit point per level of the creature. If you exceed the DC by 5 or more, add your Wisdom modifier (if positive) to this amount. A creature can only benefit from its deadly wounds being treated within 24 hours of being injured and never more than once per day.
''Action/Time'': 1 hour.
''Retry?'' Varies. Generally speaking, you can’t try a Heal check again without witnessing proof of the original check’s failure.
!!Treat Disease
To treat a disease means to tend to a single diseased character. Every time the diseased character makes a saving throw against disease effects, you make a Heal check. If your Heal check exceeds the DC of the disease, the character receives a +4 competence bonus on his saving throw against the disease.
''Action/Time'': 10 minutes.
''Retry?'' Varies. Generally speaking, you can’t try a Heal check again without witnessing proof of the original check’s failure.
!!Treat Poison
To treat poison means to tend to a single character who has been poisoned and who is going to take more damage from the poison (or suffer some other effect). Every time the poisoned character makes a saving throw against the poison, you make a Heal check. If your Heal check exceeds the DC of the poison, the character receives a +4 competence bonus on his saving throw against the poison.
''Action/Time'': 1 standard action.
''Retry?'' Varies. Generally speaking, you can’t try a Heal check again without witnessing proof of the original check’s failure.
!!Treat Wounds from Caltrops, Spike Growth, or Spike Stones
A creature wounded by stepping on a caltrop moves at one-half normal speed. A successful Heal check removes this movement penalty.
A creature wounded by a spike growth or spike stones spell must succeed on a Reflex save or take injuries that reduce his speed by one-third. Another character can remove this penalty by taking 10 minutes to dress the victim’s injuries and succeeding on a Heal check against the spell’s save DC.
''Action/Time'': 10 minutes.
''Retry?'' Varies. Generally speaking, you can’t try a Heal check again without witnessing proof of the original check’s failure.
!!Modifiers
''Feats''
If you have the Self-Sufficient feat, you get a +2 bonus on all Heal checks. If you have 10 or more ranks in Heal, the bonus increases to +4.
''Equipment''
A healer’s kit gives you a +2 circumstance bonus on Heal checks.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Healing Token
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (healing)
1 standard action V, S, DF
Range: touch
Targets: one touched holy symbol per 3 caster levels
Duration: 10 minutes/level
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
You imbue one touched holy symbol per 3 caster levels with a connection to your own divine power, turning the touched holy symbols into tokens of healing. Each of the targeted holy symbols can represent any deity regardless of the deity's actual alignment. As long as you wear or carry your divine focus, any creature carrying a token of healing can make a plea for healing in a language you understand as a standard action. When they do this, you are silently alerted to the plea for healing and can magically heal the target as an immediate action anytime before the end of your next turn. The magical healing you use to do this can be either a supernatural ability that heals damage (if you have uses available) or a spell or spell-like ability that belongs to the healing subschool (if you can cast any). In either case, to use the ability or cast the spell through this spell, you must be able to include or target that creature, and the ability's activation time or spell's casting time must be no longer than one standard action. If the ability or healing spell you use through a token would affect multiple creatures, such as mass cure light wounds, the ability or spell affects the creature that pleaded for healing as well as any other creatures within the healing spell's normal range that are also holding a holy symbol imbued with this spell. So, for example, when you use mass cure light wounds through a holy symbol that has been turned into a token of healing, that spell would heal the creature holding the token that pleaded for healing as well as one creature per level that is also holding a token (no two of which can be more than 30 feet apart). However, the mass cure light wounds spell would heal only creatures within range that are holding tokens.
Source: Healer's Handbook
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Healthful Rest
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (healing)
10 minutes V, S
Range: close (25 ft. + 5 ft./2 level)
Targets: one creature/level, no two of which can be more than 30 ft. apart
Duration: 24 hours
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
Healthful rest doubles the subjects' natural healing rate. Each affected creature regains twice the hit points and ability damage it otherwise would have regained during that day, depending on its activity level.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Heart of Air
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 1 hour/level (D) or until expended
Saving Throw: Spell Resistance:
"""
You feel light as a feather, as if the slightest breeze might knock you about. This spell converts part of your body into elemental air, freeing you somewhat from the bonds of gravity. You gain a +10 enhancement bonus on Jump checks, and if you have a fly speed, that speed gains a +10-foot enhancement bonus. Furthermore, while this spell is active, you can activate a feather fall effect (as the spell) on yourself as an immediate action. This benefit lasts for 1 round per level, at the end of which time the spell's entire effect ends. If heart of air is active on you at the same time as heart of earth, heart of fire, or heart of water, you gain light fortification. If all four of these spells are active on you at the same time, you become immune to extra damage from critical hits and sneak attacks.
Source: Complete Mage
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Heart of Water
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 1 hour/level (D) or until expended
Saving Throw: Spell Resistance:
"""
The crashing of waves echoes in your ears. This spell converts part of your body into elemental water, which makes you better able to navigate aquatic environments and slip through confined spaces. You gain a swim speed equal to your land speed, which grants you certain benefits (including a +8 racial bonus on [[Swim]] checks). You also gain the ability to breathe water (as if under the effect of a water breathing spell). Finally, you gain a +5 enhancement bonus on Escape Artist checks. Furthermore, while this spell is active, you can activate a freedom of movement effect (as the spell) on yourself as a swift action. This benefit lasts for 1 round per level, at the end of which time the spell's entire effect ends. If heart of water is active on you at the same time as heart of air, heart of earth, or heart of fire, you gain light fortification. If all four of these spells are active on you at the same time, you become immune to extra damage from critical hits and sneak attacks.
Source: Complete Mage
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Heartfire
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 level)
Area: 5-ft.-radius burst
Targets: living creatures touched in a 5-ft. radius burst
Duration: 1 round/level
Saving Throw: Fortitude partial Spell Resistance: yes
"""
Outlined subjects shed light as torches. Outlined creatures do not benefit from the concealment normally provided by darkness (although a 3rd-level or higher magical darkness effect functions normally), blur, displacement, invisibility, or similar effects. In addition, if they fail a Fortitude save, affected creatures take 1d4 points of fire damage each round as their passions manifest as physically damaging fire. Creatures that make a successful Fortitude save take only half damage each round for the duration of the spell (minimum 1 point per round). Spellcasters affected by this spell who try to cast spells must make Concentration checks (DC 10 + half the continuous damage last dealt) each round as they take continuous damage from the spell. The fire created by this spell can be extinguished by normal means; doing so ends the outlining effect.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Heat Metal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Targets: metal equipment of one creature per two levels, no two of which can be more than 30 ft. apart; or 25 lbs. of metal/level, all of which must be within a 30-ft. circle
Duration: 7 rounds
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
Heat metal causes metal objects to become red-hot. Unattended, nonmagical metal gets no saving throw. Magical metal is allowed a saving throw against the spell. An item in a creature's possession uses the creature's saving throw bonus unless its own is higher. A creature takes fire damage if its equipment is heated. It takes full damage if its armor, shield, or weapon is affected. The creature takes minimum damage (1 point or 2 points; see the table) if it's not wearing or wielding such an item. On the first round of the spell, the metal becomes warm and uncomfortable to touch but deals no damage. The same effect also occurs on the last round of the spell's duration. During the second (and also the next-to-last) round, intense heat causes pain and damage. In the third, fourth, and fifth rounds, the metal is searing hot, and causes more damage, as shown on the table presented on the following page. Round Metal Temperature Damage 1 Warm None 2 Hot 1d4 points 3-5 Searing 2d4 points 6 Hot 1d4 points 7 Warm None Any cold intense enough to damage the creature negates fire damage from the spell (and vice versa) on a point-for-point basis. If cast underwater, heat metal deals half damage and boils the surrounding water. Heat metal counters and dispels chill metal.
Source: PFRPG Core
!![[Heat Sensitivity]]
Knut is adapted to severe cold. In Moderate Temperatures or less (less than 60 degrees), Knut is fine. In Warm Temperature (between 60 degrees and 90 degrees), Knut is [[fatigued]]. If he can cool off, he can relieve this condition for 4 hours before warming up again. In Hot Temperatures or higher (above 90 degrees), Knut is automatically [[exhausted]]. Again, he can cool off, relieving this condition or reducing it to fatigued depending on how cool he can get for 1 hour before requiring cooling again. This is in addition to any other negative effects of High Temperatures.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Heatstroke
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S, M (a drop of sweat)
Range: close (25 ft. + 5 ft./2 levels)
Effect: ray
Duration: 1 minute/level
Saving Throw: Fortitude partial, see text Spell Resistance: yes
"""
A wavering red ray projects from your finger. You must succeed on a ranged touch attack with the ray to hit your target. The ray inflicts 1d4 points of nonlethal damage, causing the target to suffer from heatstroke as its body temperature dramatically increases. Except as noted above, this spell otherwise functions as ray of exhaustion. Characters wearing heavy clothing or armor of any sort take a -4 penalty on their saves.
Source: Sargava
! Heavy Horse
|N Large animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +8|
|!Defense |
|''AC'' 15, touch 13, flat-footed 11 |
|''hp'' 19 (2d8+10) |
|''Fort'' +8, ''Ref'' +7, ''Will'' +3 |
|!Offense |
|''Speed'' 50 ft. |
|''Melee'' bite +5 (1d4+5), 2 hooves +0 (1d6+2) |
|''Space'' 10, ''Reach'' 5 |
|!Statistics |
|''Str'' 20, ''Dex'' 18, ''Con'' 21, ''Int'' 2, ''Wis'' 17, ''Cha'' 11 |
|''Base Attack'' +1, ''CMB'' +7 , ''CMD'' 21 (25 vs. [[Trip]]) |
|''Feats'' Endurance, RunB |
|''Skills'' Perception +8 |
|''SQ'' docile |
|!Special Abilities |
|!''Docile'' (Ex) |
|Unless specifically trained for combat (see the Handle Animal skill) a pony’s hooves are treated as secondary attacks. |
Heavy horses are larger and heartier, bred for labor such as pulling plows or carriages. These horses gain the following adjustments to the base horse statistics:
A heavy horse gains the Advanced Simple Template (already applied here). In addition, it also gains a bite attack that inflicts 1d4 damage, and its hoof damage increases to 1d6. As with a light horse, a heavy horse can be specifically trained for combat with the Handle Animal skill.
Heavy horses stand 5 to 6 feet tall at the shoulder and weigh between 1,000 and 1,500 pounds.
|!Shield | !Cost | !Armor/Shield Bonus | !Maximum Dex Bonus | !Armor Check Penalty | !Arcane Spell Failure Chance | !Speed |<| !Weight^^1^^ |
|~|~|~|~|~|~| !30 ft. | !20 ft. |~|
|Shield, heavy wooden | 7 gp | +2 | — | –2 | 15% | — | — | 10 lbs. |
|!(Martial) One-Handed Melee Weapon | !Dmg (S) | !Dmg (M) | !Critical | !Range | !Weight^^1^^ | !Type^^2^^ | !Special |
|Shield, heavy | 1d3 | 1d4 | x2 | — | 10 lbs. | B | — |
A character who uses a weapon with which he is not proficient takes a –4 penalty on attack rolls with that weapon.
''Benefit'':
Shield Bash Attacks: You can bash an opponent with a heavy shield. See “shield, heavy” on Table: Weapons for the damage dealt by a shield bash. Used this way, a heavy shield is a martial bludgeoning weapon. For the purpose of penalties on attack rolls, treat a heavy shield as a one-handed weapon. If you use your shield as a weapon, you lose its Armor Class bonus until your next turn. An enhancement bonus on a shield does not improve the effectiveness of a shield bash made with it, but the shield can be made into a magic weapon in its own right.
Wooden or Steel: Wooden and steel shields offer the same basic protection, though they respond differently to spells and effects.
Heel (DC 15) The animal follows you closely, even to places where it normally wouldn’t go.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Heightened Awareness
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, M/DF (a coffee bean)
Range: personal
Targets: you
Duration: 10 minutes/level (D)
Saving Throw: Spell Resistance:
"""
You enter a heightened state of awareness that allows you to notice more about your surroundings and recall information effortlessly. You gain a +2 competence bonus on Perception checks and on all Knowledge checks that you are trained in. If this spell is active when you have to make an initiative check, you can instantly dismiss this spell and gain a +4 bonus on that check.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hibernate
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
necromancy
1 standard action V, S, DF
Range: touch
Targets: creature touched
Duration: 1 minute/level
Saving Throw: none Spell Resistance: no
"""
You place a willing subject into a cataleptic state. It remains aware of its surroundings but is paralyzed, appearing dead unless observers make a DC 20 Heal check. Hibernate delays the effects of poison, disease, and bleed effects for the spell's duration, and half of any hit point damage suffered by the subject is converted to nonlethal damage. This spell originated with the Green Faith, but has spread to all other druidic religions.
Source: Faction Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hidden Spring
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 hour V, S, F (a Y-shaped wooden rod)
Range: touch
Effect: a spring of fresh water
Duration: 1 hour/level
Saving Throw: none Spell Resistance: no
"""
You spend 1 hour in quiet meditation, holding the focus component in both hands and walking around a natural area. You are simultaneously drawn to areas of natural moisture while drawing that moisture closer. As the spell's casting time concludes, you thrust the focus component into the ground. From that point, a fresh, clean water trickles forth at a rate of 1 gallon every 10 minutes. You cannot cast this spell inside a building or in an area of worked stone, but you can cast it underground. You cannot cast this spell within 1 mile of an existing hidden spring.
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hide Campsite
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
illusion (glamer)
10 minutes V, S, M (a sprig of mistletoe, and a vial of quicksilver)
Range: close (25 ft. + 5 ft./2 levels)
Area: one 20-ft. cube
Duration: 2 hours/level (D)
Saving Throw: Will disbelief (if interacted with) Spell Resistance: no
"""
You make the area around a campsite appear to be a thicket of untouched and forbidding foliage, or some other unwelcoming feature matching the surrounding terrain. Creatures outside the area cannot sense any activity going on inside the area- they cannot smell campfires or cooking food, they cannot hear conversation, loud noises, or spells being cast, and they cannot even feel heat or a rush of wind coming from the area. Those inside the area can see out normally. Once a creature steps into the area of the spell, it can see everything in and around the area normally.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hide from Animals
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration
1 standard action S, DF
Range: touch
Targets: one creature touched/level
Duration: 10 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes
"""
Animals cannot sense the warded creatures. Even extraordinary or supernatural sensory capabilities, such as blindsense, blindsight, scent, and tremorsense, cannot detect or locate warded creatures. Animals simply act as though the warded creatures are not there. If a warded character touches an animal or attacks any creature, even with a spell, the spell ends for all recipients.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hoar Frost Spear
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a sliver of ice)
Range: touch
Targets: one touched non-magical spear
Duration: 1 round/level
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
A thick layer of spiky hoar frost surrounds the end of a short spear, spear or long spear. For the duration of the spell, the weapon deals both piercing and bludgeoning damage.
It gains a +1 enhancement bonus on its attacks and deals an additional +1 point of damage per caster level (maximum +10).
Source: Homebrew
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hold Animal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
enchantment (compulsion) [mind-affecting]
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Targets: one animal
Duration: 1 round/level ; see text
Saving Throw: Will negates; see text Spell Resistance: yes
"""
This spell functions like hold person, except that it affects an animal instead of a humanoid.
Source: PFRPG Core
[img[GreatGlacierBanner.JPG]]
! Ulrik Bjornson
Arctic Druid 3, Cold Elemental Sorcerer 1, Mystic Theurge 2
[[Character Sheet|Statistics]]
[[Knut the Winter Bear|Knut]]
[[Background]]
! Horse
|N Large animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +6|
|!Defense |
|''AC'' 11, touch 11, flat-footed 9 |
|''hp'' 15 (2d8+6) |
|''Fort'' +6, ''Ref'' +5, ''Will'' +1 |
|!Offense |
|''Speed'' 50 ft. |
|''Melee'' 2 hooves -2 (1d4+1) |
|''Space'' 10, ''Reach'' 5 |
|!Statistics |
|''Str'' 16, ''Dex'' 14, ''Con'' 17, ''Int'' 2, ''Wis'' 13, ''Cha'' 7 |
|''Base Attack'' +1, ''CMB'' +5 , ''CMD'' 17 (21 vs. [[Trip]]) |
|''Feats'' Endurance, RunB |
|''Skills'' Perception +6 |
|''SQ'' docile |
|!Special Abilities |
|!''Docile'' (Ex) |
|Unless specifically trained for combat (see the Handle Animal skill) a pony’s hooves are treated as secondary attacks. |
The statistics above are for a typical riding horse, called by some a “light horse.” Some horses are larger and heartier, bred for labor such as pulling plows or carriages. These horses are called “heavy horses” and gain the advanced simple template, a bite attack, increased hoof damage, and can be specifically trained for combat with the Handle Animal skill.
!!Standard Racial Traits
"""
''Ability Score Modifiers'': Human characters gain a +2 racial bonus to one ability score of their choice at creation to represent their varied nature.
''Size'': Humans are [[Medium|Size]] creatures and thus receive no bonuses or penalties due to their size.
''Base Speed'': Humans have a base speed of 30 feet.
''Languages'': Humans begin play speaking Common. Humans with high Intelligence scores can choose any languages they want (except secret languages, such as Druidic). See the Linguistics skill page for more information about these languages.
''Bonus Feat'': Humans select one extra feat at 1st level.
''Skilled'': Humans gain an additional skill rank at first level and one additional rank whenever they gain a level.
"""
Humans possess exceptional drive and a great capacity to endure and expand, and as such are currently the dominant race in the world. Their empires and nations are vast, sprawling things, and the citizens of these societies carve names for themselves with the strength of their sword arms and the power of their spells. Humanity is best characterized by its tumultuousness and diversity, and human cultures run the gamut from savage but honorable tribes to decadent, devil-worshiping noble families in the most cosmopolitan cities. Humans’ curiosity and ambition often triumph over their predilection for a sedentary lifestyle, and many leave their homes to explore the innumerable forgotten corners of the world or lead mighty armies to conquer their neighbors, simply because they can.
Human society is a strange amalgam of nostalgia and futurism, being enamored of past glories and wistfully remembered “golden ages,” yet at the same time quick to discard tradition and history and strike off into new ventures. Relics of the past are kept as prized antiques and museum pieces, as humans love to collect things—not only inanimate relics but also living creatures—to display for their amusement or to serve by their side. Other races suggest this behavior is due to a deep-rooted urge to dominate and assert power in the human psyche, an urge to take, till, or tame the wild things and places of the world. Those with a more charitable view believe humans are simply collectors of experiences, and the things they take and keep, whether living, dead, or never alive, are just tokens to remind themselves of the places they have gone, the things they have seen, and the deeds they have accomplished. Their present and future value is just a bonus; their real value is as an ongoing reminder of the inevitable progress of humanity.
Humans in many places are fascinated by older races and cultures, though at times they grow frustrated or even contemptuous of ancient and (to their mind) outmoded traditions. Their attitudes toward other races are thus a curious mix of exoticism and even fetishism, though usually with a very superficial level of understanding and appreciation of those cultures, alongside a deeply rooted arrogance that means most humans have a hard time regarding themselves as anything other than the default standard of society. Human scholars engaged in the study of other races—who might be assumed to be the most cosmopolitan and well versed in their nature and culture—have often proved no better than the less-learned members of their race when it comes to genuine closing of the social distance. Humans are gregarious, often friendly, and willing to mix and interact with others, but their sheer obliviousness to their off handed marginalization of others is what so chagrins other races when dealing with them.
Of course, well-meaning, blundering ignorance and numerical superiority are not the only things that make other races suspicious of humans. Entirely too many examples can be found throughout history wherein human xenophobia and intolerance has led to social isolationism, civil oppression, bloody purges, inquisitions, mob violence, and open war. Humans are not the only race to hate what is different among them, but they seem to have a susceptibility to fear-mongering and suspicion, whether about race, language, religion, class, gender, or another difference. More moderate human citizens often sit idly by while their more extreme compatriots dominate the political and cultural conversation, yet there are also many who stand in opposition to extremists and embody a spirit of unity across the bounds of difference, transcending barriers and forming alliances and relationships both large and small across every color, creed, country, or species.
''Physical Description'': The physical characteristics of humans are as varied as the world’s climes. From the dark-skinned tribesmen of the southern continents to the pale and barbaric raiders of the northern lands, humans possess a wide variety of skin colors, body types, and facial features. Generally speaking, humans’ skin color assumes a darker hue the closer to the equator they live. At the same time, bone structure, hair color and texture, eye color, and a host of facial and bodily phenotypic characteristics vary immensely from one locale to another. Cheekbones may be high or broad, noses aquiline or flat, and lips full or thin; eyes range wildly in hue, some deep set in their sockets, and others with full epicanthic folds. Appearance is hardly random, of course, and familial, tribal, or national commonalities often allow the knowledgeable to identify a human’s place of origin on sight, or at least to hazard a good guess. Humans’ origins are also indicated through their traditional styles of bodily decoration, not only in the clothing or jewelry worn, but also in elaborate hairstyles, piercing, tattooing, and even scarification.
''Society'': Human society comprises a multitude of governments, attitudes, and lifestyles. Though the oldest human cultures trace their histories thousands of years into the past, when compared to the societies of other races like elves and dwarves, human society seems to be in a state of constant flux as empires fragment and new kingdoms subsume the old. In general, humans are known for their flexibility, ingenuity, and ambition. Other races sometimes envy humans their seemingly limitless adaptability, not so much biologically speaking but in their willingness to step beyond the known and press on to whatever might await them. While many or even most humans as individuals are content to stay within their comfortable routine, there is a dauntless spirit of discovery endemic to humans as a species that drives them in striving toward possibilities beyond every horizon.
''Relations'': Humans are fecund, and their drive and numbers often spur them into contact with other races during bouts of territorial expansion and colonization. In many cases, this tendency leads to violence and war, yet humans are also swift to forgive and forge alliances with races who do not try to match or exceed them in violence. Proud, sometimes to the point of arrogance, humans might look upon dwarves as miserly drunkards, elves as flighty fops, halflings as craven thieves, gnomes as twisted maniacs, and half-elves and half-orcs as embarrassments—but the race’s diversity among its own members also makes many humans quite adept at accepting others for what they are. Humans may become so absorbed in their own affairs that they remain ignorant of the language and culture of others, and some take this ignorance to a hateful extreme of intolerance, oppression, and rarely even extermination of others they perceive as dangerous, strange, or “impure.” Thankfully, while such incidents and movements may taint all of humanity in the eyes of some, they are more often the exception than the rule.
''Alignment and Religion'': Humanity is perhaps the most diverse of all the common races, with a capacity for both great evil and boundless good. Some humans assemble into vast barbaric hordes, while others build sprawling cities that cover miles. Taken as a whole, most humans are neutral, yet they generally tend to congregate in nations and civilizations with specific alignments. Humans also have the widest range of gods and religions, lacking other races’ ties to tradition and eager to turn to anyone offering them glory or protection.
''Adventurers'': Ambition alone drives countless humans, and for many, adventuring serves as a means to an end, whether it be wealth, acclaim, social status, or arcane knowledge. A few pursue adventuring careers simply for the thrill of danger. Humans hail from myriad regions and backgrounds, and as such can fill any role within an adventuring party.
|!Starting Ages |<|<|<|
|!Adulthood |!Intuitive^^1^^ |!Self-Taught^^2^^ |!Trained^^3^^ |
|15 years |+1d4 years (16 – 19 years) | +1d6 years (16 – 21 years) | +2d6 years (17 – 27 years) |
"""
1 This category includes barbarians, oracles, rogues, and sorcerers.
2 This category includes bards, cavaliers, fighters, gunslingers, paladins, rangers, summoners, and witches.
3 This category includes alchemists, clerics, druids, inquisitors, magi, monks, and wizards.
"""
|!Height and Weight |<|<|<|<|
|!Gender | !Base Height | !Height Modifier | !Base Weight | !Weight Modifier |
|Male |4 ft. 10 in. |+2d10 in. (5 ft – 6 ft. 6 in.) |120 lbs. |+(2d10×5 lbs.) (130 – 220 lbs.) |
|Female |4 ft. 5 in. |+2d10 in. (4 ft. 7 in. – 6 ft. 1 in.) |85 lbs. |+(2d10×5 lbs.) (95 – 185 lbs.) |
Hunt (DC 20): This trick allows an animal to use its natural stalking or foraging instincts to find food and return it to the animal’s handler. an animal with this trick can attempt Survival checks (or Wisdom checks, if the animal has no ranks in Survival) to provide food for others or lead them to water and shelter (as the “get along in the wild” use of the Survival skill). an animal with this trick can use the aid another action to grant a bonus on its handlers Survival checks for these purposes.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hunter's Friend
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: touch
Targets: your animal companion
Duration: 1 hour/level (D)
Saving Throw: Will negates (harmless) Spell Resistance: no
"""
Your animal companion works in perfect harmony with your mastery of nature. You share one of the following class abilities with your companion for every 4 caster levels you possess: camouflage, favored enemy, favored terrain, hide in plain sight, resist nature's lure, swift tracker, trackless step, venom immunity, and woodland stride. You must have the ability in question to share it with your companion, and it functions for your companion just as it functions for you, save that each favored enemy or favored terrain you share counts as a separate class ability for the purpose of this spell. At the GM's discretion, you may instead share an ability granted by an archetype that substitutes for one of the above abilities, such as the arctic endurance, arctic native, icewalking, and snowcaster abilities of an arctic druidAPG.
Source: Animal Archive
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Huntmaster's Spear
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
10 minutes V, S, M/DF (see text)
Range: touch
Targets: nonmagical spear touched
Duration: 24 hours or until discharged
Saving Throw: Will negates (harmless, object) Spell Resistance: yes (harmless, object)
"""
Choose one creature type (and subtype, if applicable) from the ranger's favored enemy list. When you cast this spell, the targeted spear hums with destructive energy and functions as a +1 spear against creatures of the selected type. You can discharge this spell in order to make an especially powerful attack with the spear. The spear's critical range becomes 18-20 and its critical multiplier becomes x3. If you make this attack as part of a charge action, you gain an enhancement bonus of +30 feet to your base speed while performing the charge. If you throw the spear as part of this attack, its range increment increases to 80 feet. If you cast this spell on a masterwork spear, it also gains the bane special ability against the selected creature type and automatically bypasses any damage reduction (except DR/-) regardless of the creature's type. After resolving the attack, the spear is completely destroyed in a burst of energy. Any creature other than you treats the spear as a normal weapon of its type. You can have only one huntmaster's spear in effect at a time. If you cast the spell again, any previous instance of the spell immediately ends. If you expend a monster trophy of the type selected as an optional material component for this spell, you reduce the casting time to 1 round.
Source: Monster Hunter's Handbook
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hydraulic Push
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
evocation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature or object
Duration: instantaneous
Saving Throw: none Spell Resistance: yes
"""
You call forth a quick blast of water that knocks over and soaks one creature or square. You can use this blast of water to make a bull rush against any one creature or object. Your CMB for this bull rush is equal to your caster level plus your Intelligence, Wisdom, or Charisma modifier, whichever is highest. This bull rush does not provoke an attack of opportunity. Hydraulic push extinguishes any normal fires on a creature, object, or in a single 5-foot square which it is targeted against. Magical fires are unaffected.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hydraulic Torrent
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S
Range: 60 ft.
Area: 60-ft. line
Duration: instantaneous
Saving Throw: none Spell Resistance: yes
"""
You call forth a powerful stream of water that batters all creatures and obstacles in its path until it strikes something it cannot push past. Against creatures and moveable objects this stream acts as a bull rush. You can bull rush creatures of any size, not just those one size larger than your own. Make a combat maneuver check and apply its results to each creature within the area. Your CMB for this bull rush is equal to your caster level plus your Intelligence, Wisdom, or Charisma modifier, whichever is highest. This bull rush does not provoke an attack of opportunity. Against immovable objects this stream instead allows you to make a Strength check to destroy the target. When attempting to break an object, the stream has an effective Strength equal to your caster level plus the ability score modifier as above. The Break DC depends on the object you're trying to break-page 175 of the Pathfinder RPG Core Rulebook lists several sample Break DCs for various objects. Hydraulic torrent extinguishes any normal fires it encounters along its path. Magical fires are unaffected.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hydrophobia
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
necromancy
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Area: 30-ft.-radius burst
Duration: 1 round/level
Saving Throw: Will negates Spell Resistance: yes
"""
Targets in the area must succeed at a Will save or become deathly afraid of drowning. If the target is swimming or otherwise submerged in water, it must spend all of its efforts attempting to escape from the water. As long as an affected target remains in water, it takes 1d6 points of nonlethal damage each round as it thrashes about and swallows water. Even out of water, targets cannot imbibe potions or willingly interact with any fluids for the duration of this spell.
Source: Magical Marketplace
! Hyena
|N Medium animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +8|
|!Defense |
|''AC'' 14, touch 12, flat-footed 12 |
|''hp'' 13 (2d8+4) |
|''Fort'' +5, ''Ref'' +5, ''Will'' +1 |
|!Offense |
|''Speed'' 50 ft. |
|''Melee'' bite +3 (1d6+3 plus trip) |
|!Statistics |
|''Str'' 14, ''Dex'' 15, ''Con'' 15, ''Int'' 2, ''Wis'' 13, ''Cha'' 6 |
|''Base Attack'' +1, ''CMB'' +3 , ''CMD'' 15 (19 vs. [[Trip]]) |
|''Feats'' Skill Focus (Perception) |
|''Skills'' Perception +8, Stealth +6 (+10 in tall grass) |
|''Racial Modifiers'' +4 Stealth in tall grass |
|!Special Abilities |
Hyenas are pack hunters infamous for their cunning and their unnerving, laughter-like vocalizations. They are largely scavengers, but aren’t above supplementing their diet of carrion with fresh prey.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Hypothermia
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 level)
Area: one 5-ft. cube/level (S)
Targets: one creature
Duration: instantaneous
Saving Throw: Fortitude partial Spell Resistance: yes
"""
The subject takes 1d6 points of cold damage per caster level (maximum 10d6) and becomes fatigued. A successful Fortitude save halves the damage and negates the fatigue.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ice Armor
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 minute V, S, F (5 gallons of water)
Range: 0 ft.; see text
Effect: a suit of armor made of ice
Duration: 1 hour/level or until destroyed
Saving Throw: none Spell Resistance: no
"""
You create a suit of armor made of ice. While cold to the touch, it does not harm the wearer, especially if worn over normal clothing (though it can hasten the effects of exposure in cold environments). It offers the same protection as a breastplate, except it has hardness 0 and 30 hit points. If the intended wearer is immersed in water when you cast this spell, you may form the armor around the wearer (who may be you); otherwise the wearer must don the armor normally. Attacks against the wearer that create heat or fire degrade the armor, reducing its armor bonus by 1 for every 5 points of fire damage the wearer takes; when the armor's bonus to AC reaches 0, the armor is destroyed and the spell ends. Because the ice is slightly buoyant, the wearer gains a +2 circumstance bonus on Swim checks, except when swimming downward. Druids can wear ice armor without penalty.
Source: Inner Sea Gods
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ice Slick
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation) [cold]
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 level)
Targets: one object or 20 ft radius spread
Duration: 1 min./level
Saving Throw: see text Spell Resistance: no
"""
A ice slick spell covers a solid surface with a layer of slippery ice. Any creature in the area when the spell is cast must make a successful Reflex save or fall. A creature can walk within or through the area of ice at half normal speed with a Acrobatics check with a DC equal to the Save DC of the spell. Failure means it can't move that round (and must then make a Reflex save or fall), while failure by 5 or more means it falls (see the Acrobatics skill for details). Creatures that do not move on their turn do not need to make this check and are not considered flat-footed. The entire area of effect is considered difficult terrain while the effect lasts. The spell can also be used to create an icy coating on an item. Material objects not in use are always affected by this spell, while an object wielded or employed by a creature requires its bearer to make a Reflex saving throw to avoid the effect. If the initial saving throw fails, the creature immediately drops the item. A saving throw must be made in each round that the creature attempts to pick up or use the iced item. A creature wearing iced armor or clothing gains a +10 circumstance bonus on Escape Artist checks and combat maneuver checks made to escape a grapple, and to their CMD to avoid being grappled. The ice can be easily removed by heat and fire. A full round of exposure to a torch-sized flame or larger removes the ice from one square or one object. Area effect fire spells will remove the icy from within their area of effect. The ice melts harmlessly at the end of the duration of the spell.
Source: Homebrew
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ice Spears
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration
1 standard action V, S, M (a small stalagmite-shaped crystal)
Range: close (25 ft. + 5 ft./2 levels)
Effect: 1 ice spear/4 levels
Duration: instantaneous
Saving Throw: Reflex half and see below Spell Resistance: no
"""
Favored by the spellcasters of Irrisen, this potent spell can disrupt spellcasters, topple enemies, and break even seemingly unstoppable charges. One or more giant spears of ice lance up out of the ground. Each stalagmite-like icicle affects a 5-foot square and tapers to a height of 10 feet. You may cause a number of ice spears equal to one spear for every 4 caster levels you possess to burst from the ground. A creature that occupies a square from which a spear extends (or that is within 10 feet of the ground below) takes 2d6 points of piercing damage and 2d6 points of cold damage per square-creatures that take up more than 1 square can be hit by multiple spears if your caster level is high enough. The explosive growth can also trip foes. When the spears erupt from the ground, they attempt a combat maneuver check to trip any targets that take damage from the spears, with a total bonus equal to your caster level plus your Intelligence, Wisdom, or Charisma modifier, whichever is highest. Each additional ice spear beyond the first that strikes a single foe grants a +10 bonus on this combat maneuver check. If the check is successful, the ice spears knock the foe prone. A successful Reflex save halves the damage and prevents the trip attempt. If you cast this spell upon an area covered with ice or snow, such as a glacier, frozen lake, or snow-covered field, the spears strike with additional force. Saves against the effect take a -2 penalty, and the spell effect gains a +4 bonus on the combat maneuver check to trip foes. Ice spears created by this spell remain after they do their damage. They melt as normal depending on the surrounding environment. They no longer damage foes in their square, but can provide cover. An ice spear has hardness 5 and 30 hit points.
Source: AP 67
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Icelance
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (creation)
1 standard action V, S, AF (50gp clear quartz or 10 lbs of ice/snow), DF
Range: medium (100 ft. + 10 ft./level)
Effect: one lance of ice
Duration: instantaneous
Saving Throw: Fortitude partial Spell Resistance: yes
"""
You must succeed on a normal ranged attack to strike a target with an icelance. You gain a +4 bonus on your attack roll. If you hit, the icelance deals 6d6 points of damage to the target. Half of this damage is piercing damage; the rest is cold damage. In addition, the target must make a Fortitude save or be stunned for 1d4 rounds. Regardless of the result of the attack, the icelance shatters upon its first use.
Source: Spell Compendium
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
!! [[Icewalking]]
!!! Arctic Druid Archetype Alternate Feature
At 2nd level, an arctic druid suffers no penalty to speed or on Acrobatics, Climb, or Stealth checks in snowy or icy terrain or weather conditions and can walk across snow crusts or thin ice without breaking through.
This ability replaces woodland stride and resist nature's lure.
[[Icicle]] (//Sp//): As a standard action, you can fire an icicle from your finger, targeting any foe within 30 feet as a ranged touch attack. The icicle deals 1d6 points of cold damage + 1 point for every two cleric levels you possess. You can use this ability a number of times per day equal to 3 + your Wisdom modifier.
Action Buttons
<$button>
<$list filter="[tag[Stats]]">
<$action-setfield $tiddler=<<currentTiddler>> icon="scrollicon.png" />
</$list>
Add Scroll Icon to Stats
</$button>
<$button>
<$list filter="[tag[Spell]]">
<$action-setfield $tiddler=<<currentTiddler>> icon="spellbookicon.png" />
</$list>
Add Book Spell Icon to Spell
</$button>
<$button>
<$list filter="[tag[Geography]]">
<$action-setfield $tiddler=<<currentTiddler>> icon="globeicon.png" />
</$list>
Add Globe Icon to Geography
</$button>
<$button>
<$list filter="[tag[Divine]tag[Spell]]">
<$action-setfield $tiddler=<<currentTiddler>> known="1" />
<$action-listops $tiddler=<<currentTiddler>> $field=tags $subfilter='+[append[Druid]]'/>
</$list>
Add Druid and field:known=1 to all Divine Spells
</$button>
<$button>
<$list filter="[tag[Arcane]tag[Spell]]">
<$action-setfield $tiddler=<<currentTiddler>> known="1" />
<$action-listops $tiddler=<<currentTiddler>> $field=tags $subfilter='+[append[Sorcerer]]'/>
</$list>
Add Sorcerer and field:known=1 to all Arcane Spells
</$button>
<$button>
<$list filter="[tag[Druid]tag[Spell]]">
<$action-deletefield $tiddler=<<currentTiddler>> $field="known" />
<$action-setfield $tiddler=<<currentTiddler>> druidknown="1" />
</$list>
change Druid known to druidknown
</$button>
<$button>
<$list filter="[tag[Sorcerer]tag[Spell]]">
<$action-deletefield $tiddler=<<currentTiddler>> $field="known" />
<$action-setfield $tiddler=<<currentTiddler>> sorcererknown="1" />
</$list>
change Sorcerer known to sorcererknown
</$button>
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Igloo
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [cold]
1 minute V, S, DF
Range: close (25 ft. + 5 ft./two levels)
Effect: 5 ft.-10 ft. diameter web sphere or 5 ft.-20 ft. hemisphere
Duration: 1 hour/level (D)
Saving Throw: none Spell Resistance: no
"""
You create a shelter of packed snow. The shelter has a hinged door large enough to accommodate a Medium creature. The opaque walls of the shelter measure 1 foot thick and provide total cover to anyone within it. The snow is sticky enough to hold twigs, leaves, dirt, and other light items, allowing you to conceal the shelter or to leave as snow in an appropriate environment. The shelter is watertight and insulated when the door is closed. Its surface has a hardness of 0 and 2 hit points for every 5-foot square of snow surface area. It takes double damage from fire. When the spell ends, the snow melts rapidly and disappears.
Source: Homebrew
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Improve Trap
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 minute V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one trap
Duration: instantaneous
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
When this spell is cast upon a trap, it improves one specific element of the trap chosen at the time of casting. The caster can improve the trap in any of the following ways (each one raises the trap's CR by +1). • Increase DC of the Perception check required to locate the trap by +5. • Increase DC of the Disable Device check required to disarm trap by +5. • Increase the trap's attack bonus or saving throw by +2. To cast this on a trap, you must know that the trap exists and its precise location. A trap can only have one improvement from this spell at a time. A second casting changes the improvement on the trap, but does not add another improvement.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Infestation of Maggots
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
necromancy
1 standard action V, S, M (handful of dead, dried flies)
Range: touch
Targets: creature touched
Duration: 1 round/2 Levels
Saving Throw: Fortitude negates Spell Resistance: yes
"""
With a successful melee touch attack, you infest a creature with maggotlike creatures. If the touched creature fails a Fortitude saving throw, the magical maggots deal 1d4 points of Constitution damage each round at the beginning of your turn. The subject makes a new Fortitude save each round to negate the damage in that round and end the effect. The infestation can be removed with a remove disease or heal spell.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Inner Focus
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
illusion (glamer)
1 standard action V, S, DF
Range: personal
Targets: you
Duration: 10 minutes/level
Saving Throw: none (harmless) Spell Resistance: no
"""
For the duration of this spell, you may ignore any divine focus components of your spells, allowing you to cast such spells without holding or revealing your holy or unholy symbol.
Source: People Of The Sands
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Insect Scouts
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 round S, M (a drop of honey)
Range: close (25 ft. + 5 ft./2 levels)
Effect: one insect scout/4 levels
Duration: 1d6 hours, plus 1 hour/level; see text
Saving Throw: none Spell Resistance: no
"""
A favorite in the creaking courts of Ustalav, insect scouts summons one or more vermin to investigate a single location or building you can see. Your scouts must spend 1d6 hours investigating the target location, but need no oversight. When done, they return unerringly to you with their findings, traveling up to 1 mile per caster level you have to rejoin their master. Each insect's size is Fine. Each insect has 1 hit point, AC 20 (+2 Dexterity, +8 size), a movement speed of 5 feet, a climb speed of 5 feet, and a fly speed of 20 feet (perfect maneuverability). The insects use your saving throw bonuses, have a total Perception skill bonus equal to 5 + 1/2 your caster level, and can't attack. Because of their incredibly small size and magical nature, they can attempt Stealth checks to avoid being noticed even if they lack a source of cover or concealment, and they have a total Stealth skill bonus equal to 18 + 1/2 your caster level. Each scout that returns passes along memories of specific structural flaws, defenses, and alarms, granting you the ability to reroll one failed skill check per scout, as long as the skill check involves that specific location's layout, such as a Stealth check to sneak in, a Disable Device check to silence an alarm, or a Perception check to notice a trap. If even one scout returns, you also gain a rough understanding of the building's layout (at least, any portions your scouts could access). All insight (and the associated rerolls) fades 1 hour per caster level you have after the scouts return. Your insects remember nothing about creatures, and so provide no information about guardians or any conversations they may overhear.
Source: Spymaster's Handbook
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Insect Spies
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
divination
1 round V, S, M (a drop of honey)
Range: close (25 ft. + 5 ft./2 levels)
Effect: up to one insect spy/4 levels
Duration: 10 minutes/level (D)
Saving Throw: none Spell Resistance: no
"""
You summon one or more glossy black beetles, which have a measure of intelligence and make for excellent spies. When they are in your presence, the insects obey your mental commands, and you can issue orders to any number of them as a single standard action, provided that you issue the same orders to each one. In order to issue different orders to different insects, you must spend a separate standard action for each set of orders. An insect in physical contact with you can answer simple questions about what it has observed, at a rate of one question per round. It can relate only what it perceived with its senses, and can't repeat speech. It has difficulty making subjective judgments, and questions that demand such reasoning are unlikely to yield a clear answer. For example, an insect is unable to relay someone's emotional state or determine who among several people it saw might be in charge. Each insects' size is Fine. Each insect has 1 hit point, AC 20 (+2 Dexterity, +8 size), a movement speed of 5 feet, a climb speed of 5 feet, and a fly speed of 20 feet (perfect maneuverability). The insects use your saving throw bonuses, have a total Perception skill bonus equal to 5 + 1/2 your caster level, and can't make attacks. Due to their incredibly small size and magical nature, they can make Stealth checks to avoid being noticed even if they lack a source of cover or concealment, and they have a total Stealth skill bonus equal to 18 + 1/2 your caster level. The insects can even climb onto creatures of Tiny or larger size while using Stealth, possibly riding on those creatures unnoticed. A Tiny creature gains a +16 bonus on Perception checks made to notice one of these insects currently climbing on it. For each size category larger than Tiny the creature being climbed is, this bonus is reduced by 4 (to a minimum of +0 for Huge or larger creatures). You also maintain a faint mystical connection with these insects, which allows you to sense where they are. As a full-round action, you can concentrate on the spell in order to learn the direction and relative distance of each of the insects.
Source: Ultimate Intrigue
You can use this skill to frighten your opponents or to get them to act in a way that benefits you. This skill includes verbal threats and displays of prowess.
!! Common Uses
!! Coerce Opponent
Sometimes you need to cow someone into submission for more than just a few hours.
''Action'': Coercing a target into acting friendly for hours takes 1d4 × 10 minutes. Coercing a target into acting friendly for days requires you to successfully use coercion at least once per week for 1d6 weeks without failing any Intimidate checks against the target during that time.
''Try Again'': You can’t attempt long-term coercion against the same target again for 1 week.
''Check'': By spending more time threatening or harassing a target, you can attempt to force a creature to act friendly toward you for 1d6 hours + 1 hour for every 5 points by which you exceed the DC. If you succeed at such a check against the same target at least once per week for 1d6 weeks (without ever failing any Intimidate checks against the target during that time), the duration of the coercion increases to 2d8 days. Coercion is overt, not subtle, and in most cases using coercion against a creature is an evil act.
A coerced target acts as though friendly toward you even when you aren’t around, but the aid offered remains grudging at best. The target’s true attitude is hostile, and if the target believes it can take an action to hinder you that can’t be traced back to it, it’s likely to take such opportunities.
Creatures attempting to enlist its aid against you can often do so by convincing the target they are able to protect it from your wrath, using the normal Diplomacy rules.
!! Demoralize Opponent
You can use this skill to cause an opponent to become shaken for a number of rounds. This shaken condition doesn’t stack with other shaken conditions to make an affected creature frightened. The DC of this check is equal to 10 + the target’s Hit Dice + the target’s Wisdom modifier.
''Success'': If you are successful, the target is shaken for one round. This duration increases by 1 round for every 5 by which you beat the DC. You can only threaten an opponent this way if it is within 30 feet and can clearly see and hear you. Using demoralize on the same creature only extends the duration; it does not create a stronger fear condition.
''Fail'': The opponent is not shaken.
''Action ''Demoralizing an opponent is a standard action.
''Retry?'' You can attempt to intimidate an opponent again, but each additional check increases the DC by +5. This increase resets after one hour has passed.
!! Influence Opponent’s Attitude
You can use Intimidate to force an opponent to act friendly toward you for 1d6 × 10 minutes with a successful check. The DC of this check is equal to 10 + the target’s Hit Dice + the target’s Wisdom modifier.
''Success'': If successful, the opponent will:
"""
…give you information you desire
…take actions that do not endanger it
…offer other limited assistance
"""
After the intimidate expires, the target treats you as unfriendly and may report you to local authorities.
''Fail'': If you fail this check by 5 or more, the target attempts to deceive you or otherwise hinder your activities.
Action Using Intimidate to change an opponent’s attitude requires 1 minute of conversation.
''Retry?'' You can attempt to intimidate an opponent again, but each additional check increases the DC by +5. This increase resets after one hour has passed.
!! Modifiers
''Size ''
You gain a +4 bonus on Intimidate checks if you are larger than your target, and a –4 penalty on Intimidate checks if you are smaller than your target.
''Feats ''
If you have the Persuasive feat, you gain a +2 bonus on Intimidate skill checks. If you have 10 or more ranks in Intimidate, the bonus increases to +4.
''Race ''
A half-orc gets a +2 bonus on Intimidate checks.
Intimidate (DC 15): The companion bares its teeth, barks, bristles, growls, or otherwise threatens a creature you designate, or, alternatively, it can be trained to do so when it encounters any creature besides its handler. The companion takes a –4 penalty on Intimidate checks against creatures other than those with the animal or humanoid types unless it has also been trained to attack creatures of any type. A companion that knows this trick automatically uses the aid another action to assist Intimidate checks attempted by its handler, provided that it is within 15 feet of its handler at the time and has not been ordered to perform another task.
The <$text text="""<$calc>""" /> widget is a simple wrapper around [ext[math.js|http://mathjs.org/]]'s eval function. For those of you not familiar with math.js and eval, the short of it is that eval is able to intelligently evaluate mathematical expressions while not exposing th typical security issues inherent in eval.
In addition to just being able to evaluate standard expressions, I've added support for TextReferences among the code, so now you can store data in fields or data tiddlers and write expressions based on that data.
To import this plugin drag this link: [[$:/plugins/mklauber/math.js]]
Development on this plugin is managed at https://github.com/mklauber/tiddly-mathjs. Feel free to open a issue or PR.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Invigorating Poison
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M/DF (an apple seed)
Range: touch
Targets: creature touched
Duration: 10 minutes/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
The body of the target creature gains a metabolic response that allows it to benefit from normally deadly toxins. When a poison would cause ability damage to the target creature, the target instead gains a +4 alchemical bonus to that ability score. The spell then immediately ends, but the bonus lasts for a number of minutes equal to the amount of ability damage the poison would have caused. If the poison would deal more than one type of ability damage, each bonus has a separate duration. If the poison has effects other than ability damage (such as unconsciousness or ability drain), these effects apply normally. This spell affects only a single poison; if multiple poisons affect the target simultaneously, this spell prevents only ability damage and grants the appropriate bonuses for the poison that would cause the most damage.
Source: Dirty Tactics Toolbox
Invisible creatures are visually undetectable. An invisible creature gains a +2 bonus on attack rolls against sighted opponents, and ignores its opponents’ Dexterity bonuses to AC (if any). See the invisibility special ability.
!! Invisibility
The ability to move about unseen is not foolproof. While they can’t be seen, invisible creatures can be heard, smelled, or felt.
Invisibility makes a creature undetectable by vision, including [[Darkvision]].
Invisibility does not, by itself, make a creature immune to critical hits, but it does make the creature immune to extra damage from being a ranger’s favored enemy and from [[Sneak Attacks]].
A creature can generally notice the presence of an active invisible creature within 30 feet with a DC 20 [[Perception]] check. The observer gains a hunch that “something’s there” but can’t see it or target it accurately with an attack. It’s practically impossible (+20 DC) to pinpoint an invisible creature’s location with a [[Perception]]check. Even once a character has pinpointed the square that contains an invisible creature, the creature still benefits from Total [[Concealment]] (50% miss chance). There are a number of modifiers that can be applied to this DC if the invisible creature is moving or engaged in a noisy activity.
|!Invisible creature is… | !Perception DC Modifier |
|In combat or speaking | –20 |
|Moving at half speed | –5 |
|Moving at full speed | –10 |
|Running or charging | –20 |
|Not moving | +20 |
|Using [[Stealth]] | [[Stealth]] check +20 |
|Some distance away | +1 per 10 feet |
|Behind an obstacle (door) | +5 |
|Behind an obstacle (stone wall) | +15 |
A creature can grope about to find an invisible creature. A character can make a touch attack with his hands or a weapon into two adjacent 5-foot squares using a standard action. If an invisible target is in the designated area, there is a 50% miss chance on the touch attack. If successful, the groping character deals no damage but has successfully pinpointed the invisible creature’s current location. If the invisible creature moves, its location, obviously, is once again unknown.
If an invisible creature strikes a character, the character struck knows the location of the creature that struck him (until, of course, the invisible creature moves). The only exception is if the invisible creature has a reach greater than 5 feet. In this case, the struck character knows the general location of the creature but has not pinpointed the exact location.
If a character tries to attack an invisible creature whose location he has pinpointed, he attacks normally, but the invisible creature still benefits from full [[Concealment]] (and thus a 50% miss chance). A particularly large and slow invisible creature might get a smaller miss chance.
If a character tries to attack an invisible creature whose location he has not pinpointed, have the player choose the space where the character will direct the attack. If the invisible creature is there, conduct the attack normally. If the enemy’s not there, roll the miss chance as if it were there and tell him that the character has missed, regardless of the result. That way the player doesn’t know whether the attack missed because the enemy’s not there or because you successfully rolled the miss chance.
If an invisible character picks up a visible object, the object remains visible. An invisible creature can pick up a small visible item and hide it on his person (tucked in a pocket or behind a cloak) and render it effectively invisible. One could coat an invisible object with flour to at least keep track of its position (until the flour falls off or blows away).
Invisible creatures leave tracks. They can be tracked normally. Footprints in sand, mud, or other soft surfaces can give enemies clues to an invisible creature’s location.
An invisible creature in the water displaces water, revealing its location. The invisible creature, however, is still hard to see and benefits from [[Concealment]].
A creature with the [[Scent]] ability can detect an invisible creature as it would a visible one.
A creature with the [[Blind-Fight]] feat has a better chance to hit an invisible creature. Roll the miss chance twice, and he misses only if both rolls indicate a miss. (Alternatively, make one 25% miss chance roll rather than two 50% miss chance rolls.)
A creature with [[Blindsight]] can attack (and otherwise interact with) creatures regardless of invisibility.
An invisible burning torch still gives off light, as does an invisible object with a light or similar spell cast upon it.
Ethereal creatures are invisible. Since ethereal creatures are not materially present, Perception checks, scent, Blind-Fight, and [[Blindsight]]don’t help locate them. Incorporeal creatures are often invisible. Scent, Blind-Fight, and [[Blindsight]]don’t help creatures find or attack invisible, incorporeal creatures, but Perception checks can help.
Invisible creatures cannot use gaze attacks.
Invisibility does not thwart divination spells.
Since some creatures can detect or even see invisible creatures, it is helpful to be able to hide even when invisible.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Iron Stake
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (creation)
1 standard action V, S, M (a pinch of iron filings)
Range: close (25 ft. + 5 ft./2 levels)
Duration: instantaneous or 1 round/level; see text
Saving Throw: Fortitude partial Spell Resistance: no
"""
This spell creates a 1-foot-long spike of cold iron that you fling at your target as a ranged touch attack. The stake is treated as a magic and cold iron weapon for the purpose of overcoming damage reduction, and deals 1d6 points of piercing damage for every 2 caster levels you have (maximum 10d6 at 20th level). Additionally, if a creature with DR/cold iron takes damage from this spell, it is sickened for 1 round and must attempt a Fortitude save. If it fails, for a number of rounds equal to your caster level, it must succeed at a concentration check (in addition to any normally required concentration checks) to use any spells or spell-like abilities it has-the DC of this check is equal to 15 + twice the spell's level. If the creature fails this concentration check, its spell is wasted.
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ironbloom Sprouts
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, DF, M (1 gp worth of powdered iron)
Range: touch
Targets: 2d4 fresh mushrooms touched
Duration: 1 day/level
Saving Throw: none Spell Resistance: yes
"""
This spell functions like goodberry, except as noted above and that it transforms 2d4 mushrooms into magical ironbloom mushrooms rather than transforming common berries into magical berries. Alternatively, you may create twice as many mushrooms, but each only has the nourishment ability of a goodberry and not the healing properties.
Source: AP 62
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ironskin
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF/M (a pinch of forge soot)
Range: personal
Targets: you
Duration: 1 minute/level (D; see text)
Saving Throw: Spell Resistance:
"""
Your skin hardens and takes on the color and texture of rough iron. You gain a +4 enhancement bonus to your existing natural armor bonus (if you do not have a natural armor bonus, you are considered to have an effective natural armor bonus of +0). This enhancement bonus increases by 1 for every 4 caster levels above 4th, to a maximum of +7 at 15th level. While you're under the effects of this spell, if an opponent confirms a critical hit or sneak attack against you with a physical weapon (not a spell or magical effect), you can dismiss this spell to negate the critical hit or sneak attack and treat it is as a normal hit. Dismissing the spell in this way is not an action, but you must be conscious and aware of the attack to do so.
Source: Monster Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Itching Curse
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
necromancy
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one living creature with 5 HD or fewer
Duration: 1 hour/level (D)
Saving Throw: Will negates Spell Resistance: yes
"""
You curse the target with a distracting, unbearable itch. Unless the target scratches as a move action, it takes a -1 penalty on attack rolls, saving throws, skill checks, and ability checks.
Source: Magic Tactics Toolbox
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ja Noi Aspect
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation (polymorph)
1 standard action V, S, DF
Range: personal
Targets: you
Duration: 1 round/level (D; see below)
Saving Throw: none Spell Resistance: yes (harmless)
"""
You gain some of the appearance and qualities of the ja noi, oni who take hobgoblin form. Your skin turns a fiery red color and you gain fast healing 3, although this ability cannot repair damage caused by acid or fire. You can dismiss this spell as an immediate action when you fail a Will saving throw; if you do, you can reroll your saving throw, but you must take the second result.
Source: AP 115
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Jagged Tooth
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 level)
Targets: one natural slashing or piercing weapon of target creature
Duration: 10 min./level
Saving Throw: Will negate (harmless) Spell Resistance: yes (harmless)
"""
This spell doubles the critical threat range of one natural weapon that deals either slashing or piercing damage. Multiple effects that increase a weapon's threat range don't stack.
Source: Spell Compendium
<$list filter="[tag[Journal]]"/>
Begin Journal Entry.
@@.borderless
|!Loot |<|<|
| | |<|
@@
@@.borderless
|!Money Totals |<|<|
|1000 pp, 3881 gp, 4878 sp, 5585 cp | |<|
|Gems: 2375 gp | |<|
|Jewelry: 3650+200 gp | |<|
XP: ?? (previous) + ?? = ??
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Jump
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M (a grasshopper's hind leg)
Range: touch
Targets: creature touched
Duration: 1 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes
"""
The subject gets a +10 enhancement bonus on Acrobatics checks made to attempt high jumps or long jumps. The enhancement bonus increases to +20 at caster level 5th, and to +30 (the maximum) at caster level 9th.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Keen Senses
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, M/DF (a hawk's feather)
Range: touch
Targets: creature touched
Duration: 1 minute/level (D)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The subject gains a +2 competence bonus on Perception checks and gains low-light vision. Subjects that have low-light vision double the distance they can see under the effects of this spell.
Source: APG
You are educated in a field of study and can answer both simple and complex questions. Like the Craft, Perform, and Profession skills, Knowledge actually encompasses a number of different specialties.
Arcana (ancient mysteries, magic traditions, arcane symbols, constructs, dragons, magical beasts); Although robots are constructs, Knowledge (arcana) cannot be used to identify robots or their abilities and weaknesses.
!!Common Uses
!!General Knowledge
Answering a question within your field of study has a DC of 10 (for really easy questions), 15 (for basic questions), or 20 to 30 (for really tough questions).
''Action'': Usually none. In most cases, a Knowledge check doesn’t take an action (but see “Untrained,” below).
''Retry?'' No. The check represents what you know, and thinking about a topic a second time doesn’t let you know something that you never learned in the first place.
|!Task | !DC |
|Identify auras while using detect magic | 15 + spell level |
|Identify a spell effect that is in place | 20 + spell level |
|Identify materials manufactured by magic | 20 + spell level |
|Identify a spell that just targeted you | 25 + spell level |
|Identify the spells cast using a specific material component | 20 |
|Identify a monster’s abilities and weaknesses^^1^^ | 10 + monster’s CR |
^^!^^ Constructs, dragons, magical beasts
!!Monster Lore
You can use this skill to identify monsters and their special powers or vulnerabilities.
''Check'': In general, the DC of such a check equals 10 + the monster’s CR. For common monsters, such as goblins, the DC of this check equals 5 + the monster’s CR. For particularly rare monsters, such as the tarrasque, the DC of this check equals 15 + the monster’s CR or more. A successful check allows you to remember a bit of useful information about that monster. For every 5 points by which your check result exceeds the DC, you recall another piece of useful information.
|!Creature Type |!Field of Study |
|Constructs, dragons, magical beasts | Arcana |
|Aberrations, oozes | Dungeoneering |
|Humanoids | Local |
|Animals, fey, giants, monstrous humanoids, plants, vermin | Nature |
|Outsiders | Planes |
|Undead | Religion |
''Action'': Usually none. In most cases, a Knowledge check doesn’t take an action (but see “Untrained,” below).
''Retry?'' No. The check represents what you know, and thinking about a topic a second time doesn’t let you know something that you never learned in the first place.
!!Modifiers
''Training''
You cannot make an untrained Knowledge check with a DC higher than 10.
''Equipment (Library)''
If you have access to an extensive library that covers a specific skill, this limit is removed. The time to make checks using a library, however, increases to 1d4 hours. Particularly complete libraries might even grant a bonus on Knowledge checks in the fields that they cover.
!! Recall Intrigues (Knowledge)
You can identify feats and the class features of various classes with successful Knowledge checks when you observe the feats or class features being used.
''Check'': You can attempt a skill check to identify a feat or class feature when you observe it in use, similar to how Spellcraft can be used to identify a spell. The feat or class feature must have some observable effect in order for you to attempt the Knowledge check. For example, you can’t see the internal determination of Iron Will, so this ability can’t identify that feat. In general, if a feat or class feature creates a noticeable effect (such as the extra attack from using Cleave) or has a variable modifier a character must choose to use (such as Arcane Strike, Combat Expertise, or Enlarge Spell), it can be identified. If it creates a static bonus (such as Dodge or Lightning Reflexes), there’s no telltale sign to give it away.
|!Task | !Knowledge Skill | !DC |
|Identify a class feature from a class that grants arcane or psychic spells | Arcana | 10+ class level when the feature is granted.* |
|Identify a class feature from a class with access to the druid or ranger spell list | Nature | 10+ class level when the feature is granted. |
|Identify a class feature from a class that grants divine spells | Religion | 10+ class level when the feature is granted. |
|Identify a class feature from any other class | Local | 10+ class level when the feature is granted.* |
|Identify a combat feat being used | Local | 10+ character’s level |
|Identify a metamagic feat being used | Arcana | 10+ character’s level |
|Identify teamwork feat being used | Nobility | 10+ character’s level |
"""*Add 10 to the DC if the class is a prestige class"""
The Knowledge skill required to identify a feat or class feature varies depending on the type of feat or class feature to be identified and is outlined in the Recall Intrigues (Knowledge) table above, along with the DCs of such skill checks.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Know Direction
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
divination
1 standard action V, S
Range: personal
Targets: you
Duration: instantaneous
Saving Throw: Spell Resistance:
"""
When you cast this spell, you instantly know the direction of north from your current position. The spell is effective in any environment in which "north" exists, but it may not work in extraplanar settings. Your knowledge of north is correct at the moment of casting, but you can get lost again within moments if you don't find some external reference point to help you keep track of direction.
Source: PFRPG Core
You are educated in a field of study and can answer both simple and complex questions. Like the Craft, Perform, and Profession skills, Knowledge actually encompasses a number of different specialties.
Geography (lands, terrain, climate, people); Used for astronomy.
!!Common Uses
!!General Knowledge
Answering a question within your field of study has a DC of 10 (for really easy questions), 15 (for basic questions), or 20 to 30 (for really tough questions).
''Action'': Usually none. In most cases, a Knowledge check doesn’t take an action (but see “Untrained,” below).
''Retry?'' No. The check represents what you know, and thinking about a topic a second time doesn’t let you know something that you never learned in the first place.
|!Task | !DC |
|Identify a creature’s ethnicity or accent | 10 |
|Recognize regional terrain features | 15 |
|Know location of nearest community or noteworthy site | 20 |
!!Modifiers
''Training''
You cannot make an untrained Knowledge check with a DC higher than 10.
''Equipment (Library)''
If you have access to an extensive library that covers a specific skill, this limit is removed. The time to make checks using a library, however, increases to 1d4 hours. Particularly complete libraries might even grant a bonus on Knowledge checks in the fields that they cover.
You are educated in a field of study and can answer both simple and complex questions. Like the Craft, Perform, and Profession skills, Knowledge actually encompasses a number of different specialties.
Nature (animals, fey, monstrous humanoids, plants, seasons and cycles, weather, vermin)
!!Common Uses
!!General Knowledge
Answering a question within your field of study has a DC of 10 (for really easy questions), 15 (for basic questions), or 20 to 30 (for really tough questions).
''Action'': Usually none. In most cases, a Knowledge check doesn’t take an action (but see “Untrained,” below).
''Retry?'' No. The check represents what you know, and thinking about a topic a second time doesn’t let you know something that you never learned in the first place.
|!Task | !DC |
|Identify natural hazard | 15 + hazard’s CR |
|Identify a common plant or animal | 10 |
|Identify unnatural weather phenomenon | 15 |
|Determine artificial nature of feature | 20 |
|Identify a monster’s abilities and weaknesses^^1^^ | 10 + monster’s CR |
^^1^^ Animals, fey, giants, monstrous humanoids, plants, vermin
!!Monster Lore
You can use this skill to identify monsters and their special powers or vulnerabilities.
''Check'': In general, the DC of such a check equals 10 + the monster’s CR. For common monsters, such as goblins, the DC of this check equals 5 + the monster’s CR. For particularly rare monsters, such as the tarrasque, the DC of this check equals 15 + the monster’s CR or more. A successful check allows you to remember a bit of useful information about that monster. For every 5 points by which your check result exceeds the DC, you recall another piece of useful information.
|!Creature Type |!Field of Study |
|Constructs, dragons, magical beasts | Arcana |
|Aberrations, oozes | Dungeoneering |
|Humanoids | Local |
|Animals, fey, giants, monstrous humanoids, plants, vermin | Nature |
|Outsiders | Planes |
|Undead | Religion |
''Action'': Usually none. In most cases, a Knowledge check doesn’t take an action (but see “Untrained,” below).
''Retry?'' No. The check represents what you know, and thinking about a topic a second time doesn’t let you know something that you never learned in the first place.
!!Modifiers
''Training''
You cannot make an untrained Knowledge check with a DC higher than 10.
''Equipment (Library)''
If you have access to an extensive library that covers a specific skill, this limit is removed. The time to make checks using a library, however, increases to 1d4 hours. Particularly complete libraries might even grant a bonus on Knowledge checks in the fields that they cover.
!! Recall Intrigues (Knowledge)
You can identify feats and the class features of various classes with successful Knowledge checks when you observe the feats or class features being used.
''Check'': You can attempt a skill check to identify a feat or class feature when you observe it in use, similar to how Spellcraft can be used to identify a spell. The feat or class feature must have some observable effect in order for you to attempt the Knowledge check. For example, you can’t see the internal determination of Iron Will, so this ability can’t identify that feat. In general, if a feat or class feature creates a noticeable effect (such as the extra attack from using Cleave) or has a variable modifier a character must choose to use (such as Arcane Strike, Combat Expertise, or Enlarge Spell), it can be identified. If it creates a static bonus (such as Dodge or Lightning Reflexes), there’s no telltale sign to give it away.
|!Task | !Knowledge Skill | !DC |
|Identify a class feature from a class that grants arcane or psychic spells | Arcana | 10+ class level when the feature is granted.* |
|Identify a class feature from a class with access to the druid or ranger spell list | Nature | 10+ class level when the feature is granted. |
|Identify a class feature from a class that grants divine spells | Religion | 10+ class level when the feature is granted. |
|Identify a class feature from any other class | Local | 10+ class level when the feature is granted.* |
|Identify a combat feat being used | Local | 10+ character’s level |
|Identify a metamagic feat being used | Arcana | 10+ character’s level |
|Identify teamwork feat being used | Nobility | 10+ character’s level |
"""*Add 10 to the DC if the class is a prestige class"""
The Knowledge skill required to identify a feat or class feature varies depending on the type of feat or class feature to be identified and is outlined in the Recall Intrigues (Knowledge) table above, along with the DCs of such skill checks.
You are educated in a field of study and can answer both simple and complex questions. Like the Craft, Perform, and Profession skills, Knowledge actually encompasses a number of different specialties.
Planes (the Inner Planes, the Outer Planes, the Astral Plane, the Ethereal Plane, outsiders, planar magic)
!!Common Uses
!!General Knowledge
Answering a question within your field of study has a DC of 10 (for really easy questions), 15 (for basic questions), or 20 to 30 (for really tough questions).
''Action'': Usually none. In most cases, a Knowledge check doesn’t take an action (but see “Untrained,” below).
''Retry?'' No. The check represents what you know, and thinking about a topic a second time doesn’t let you know something that you never learned in the first place.
|!Task | !DC |
|Know the names of the planes | 10 |
|Recognize current plane | 15 |
|Identify a creature’s planar origin | 20 |
|Identify a monster’s abilities and weaknesses^^1^^ | 10 + monster’s CR |
^^1^^ Outsiders
!!Monster Lore
You can use this skill to identify monsters and their special powers or vulnerabilities.
''Check'': In general, the DC of such a check equals 10 + the monster’s CR. For common monsters, such as goblins, the DC of this check equals 5 + the monster’s CR. For particularly rare monsters, such as the tarrasque, the DC of this check equals 15 + the monster’s CR or more. A successful check allows you to remember a bit of useful information about that monster. For every 5 points by which your check result exceeds the DC, you recall another piece of useful information.
|!Creature Type |!Field of Study |
|Constructs, dragons, magical beasts | Arcana |
|Aberrations, oozes | Dungeoneering |
|Humanoids | Local |
|Animals, fey, giants, monstrous humanoids, plants, vermin | Nature |
|Outsiders | Planes |
|Undead | Religion |
''Action'': Usually none. In most cases, a Knowledge check doesn’t take an action (but see “Untrained,” below).
''Retry?'' No. The check represents what you know, and thinking about a topic a second time doesn’t let you know something that you never learned in the first place.
!!Modifiers
''Training''
You cannot make an untrained Knowledge check with a DC higher than 10.
''Equipment (Library)''
If you have access to an extensive library that covers a specific skill, this limit is removed. The time to make checks using a library, however, increases to 1d4 hours. Particularly complete libraries might even grant a bonus on Knowledge checks in the fields that they cover.
!! Recall Intrigues (Knowledge)
You can identify feats and the class features of various classes with successful Knowledge checks when you observe the feats or class features being used.
''Check'': You can attempt a skill check to identify a feat or class feature when you observe it in use, similar to how Spellcraft can be used to identify a spell. The feat or class feature must have some observable effect in order for you to attempt the Knowledge check. For example, you can’t see the internal determination of Iron Will, so this ability can’t identify that feat. In general, if a feat or class feature creates a noticeable effect (such as the extra attack from using Cleave) or has a variable modifier a character must choose to use (such as Arcane Strike, Combat Expertise, or Enlarge Spell), it can be identified. If it creates a static bonus (such as Dodge or Lightning Reflexes), there’s no telltale sign to give it away.
|!Task | !Knowledge Skill | !DC |
|Identify a class feature from a class that grants arcane or psychic spells | Arcana | 10+ class level when the feature is granted.* |
|Identify a class feature from a class with access to the druid or ranger spell list | Nature | 10+ class level when the feature is granted. |
|Identify a class feature from a class that grants divine spells | Religion | 10+ class level when the feature is granted. |
|Identify a class feature from any other class | Local | 10+ class level when the feature is granted.* |
|Identify a combat feat being used | Local | 10+ character’s level |
|Identify a metamagic feat being used | Arcana | 10+ character’s level |
|Identify teamwork feat being used | Nobility | 10+ character’s level |
"""*Add 10 to the DC if the class is a prestige class"""
The Knowledge skill required to identify a feat or class feature varies depending on the type of feat or class feature to be identified and is outlined in the Recall Intrigues (Knowledge) table above, along with the DCs of such skill checks.
You are educated in a field of study and can answer both simple and complex questions. Like the Craft, Perform, and Profession skills, Knowledge actually encompasses a number of different specialties.
Religion (gods and goddesses, mythic history, ecclesiastic tradition, holy symbols, undead)
!!Common Uses
!!General Knowledge
Answering a question within your field of study has a DC of 10 (for really easy questions), 15 (for basic questions), or 20 to 30 (for really tough questions).
''Action'': Usually none. In most cases, a Knowledge check doesn’t take an action (but see “Untrained,” below).
''Retry?'' No. The check represents what you know, and thinking about a topic a second time doesn’t let you know something that you never learned in the first place.
|!Task | !DC |
|Recognize a common deity’s symbol or clergy | 10 |
|Know common mythology and tenets | 15 |
|Recognize an obscure deity’s symbol or clergy | 20 |
|Identify a monster’s abilities and weaknesses^^1^^ | 10 + monster’s CR |
^^1^^ Undead
!!Monster Lore
You can use this skill to identify monsters and their special powers or vulnerabilities.
''Check'': In general, the DC of such a check equals 10 + the monster’s CR. For common monsters, such as goblins, the DC of this check equals 5 + the monster’s CR. For particularly rare monsters, such as the tarrasque, the DC of this check equals 15 + the monster’s CR or more. A successful check allows you to remember a bit of useful information about that monster. For every 5 points by which your check result exceeds the DC, you recall another piece of useful information.
|!Creature Type |!Field of Study |
|Constructs, dragons, magical beasts | Arcana |
|Aberrations, oozes | Dungeoneering |
|Humanoids | Local |
|Animals, fey, giants, monstrous humanoids, plants, vermin | Nature |
|Outsiders | Planes |
|Undead | Religion |
''Action'': Usually none. In most cases, a Knowledge check doesn’t take an action (but see “Untrained,” below).
''Retry?'' No. The check represents what you know, and thinking about a topic a second time doesn’t let you know something that you never learned in the first place.
!!Modifiers
''Training''
You cannot make an untrained Knowledge check with a DC higher than 10.
''Equipment (Library)''
If you have access to an extensive library that covers a specific skill, this limit is removed. The time to make checks using a library, however, increases to 1d4 hours. Particularly complete libraries might even grant a bonus on Knowledge checks in the fields that they cover.
!! Recall Intrigues (Knowledge)
You can identify feats and the class features of various classes with successful Knowledge checks when you observe the feats or class features being used.
''Check'': You can attempt a skill check to identify a feat or class feature when you observe it in use, similar to how Spellcraft can be used to identify a spell. The feat or class feature must have some observable effect in order for you to attempt the Knowledge check. For example, you can’t see the internal determination of Iron Will, so this ability can’t identify that feat. In general, if a feat or class feature creates a noticeable effect (such as the extra attack from using Cleave) or has a variable modifier a character must choose to use (such as Arcane Strike, Combat Expertise, or Enlarge Spell), it can be identified. If it creates a static bonus (such as Dodge or Lightning Reflexes), there’s no telltale sign to give it away.
|!Task | !Knowledge Skill | !DC |
|Identify a class feature from a class that grants arcane or psychic spells | Arcana | 10+ class level when the feature is granted.* |
|Identify a class feature from a class with access to the druid or ranger spell list | Nature | 10+ class level when the feature is granted. |
|Identify a class feature from a class that grants divine spells | Religion | 10+ class level when the feature is granted. |
|Identify a class feature from any other class | Local | 10+ class level when the feature is granted.* |
|Identify a combat feat being used | Local | 10+ character’s level |
|Identify a metamagic feat being used | Arcana | 10+ character’s level |
|Identify teamwork feat being used | Nobility | 10+ character’s level |
"""*Add 10 to the DC if the class is a prestige class"""
The Knowledge skill required to identify a feat or class feature varies depending on the type of feat or class feature to be identified and is outlined in the Recall Intrigues (Knowledge) table above, along with the DCs of such skill checks.
[img[Knut.jpg]]
! [[Animal Companion|Nature Bond]]
<<tabs "[tag[Knut Stats]sort[title]]" "" "$:/state/tab1">>
! [[Knut Base Statistics]]
@@.borderless
|HD| 6 |[[HP|Knut Leveling]]| 59 | Druid Level 6 |
@@
!!! Abilities
|!Ability|!Score|!Mod|!Misc|!Temp|
|!STR|19|+4|||
|!DEX|15|+2|||
|!CON|16|+3|||
|!INT|2|-4|||
|!WIS|13|+1|||
|!CHA|6|-2|||
!!! Saves
{{Knut Saving Throws}}
{
"HD": 6,
"STR": 19,
"DEX": 15,
"CON": 16,
"INT": 2,
"WIS": 13,
"CHA": 6,
"HP": 59,
"CurrentHP": "59"
}
\define oldHP()
{{Knut CharacterData##CurrentHP}}
\end
\define newAddHP()
<$macrocall $name="increment" value=$(oldValue)$ step="1" />
\end
\define newMinusHP()
<$macrocall $name="increment" value=$(oldValue)$ step="-1" />
\end
\define plusButton()
<$button set="Tea CharacterData##CurrentHP" setTo="$(newAddValue)$" > + </$button>
\end
\define minusButton()
<$button set="Tea CharacterData##CurrentHP" setTo="$(newMinusValue)$" > - </$button>
\end
! [[Combat|Knut Combat]]
! [[HP|Knut Leveling]]: {{Knut CharacterData##HP}}
<$set name=oldValue value=<<oldHP>> >
<$set name=newAddValue value=<<newAddHP>> >
<$set name=newMinusValue value=<<newMinusHP>> >
<$wikify name=thisPButton text=<<plusButton>> >
<$wikify name=thisMButton text=<<minusButton>> >
<table class="borderless" style="font-size:150%"><tr><td style="align:left">Current HP: </td><td style="border: 1px solid black !important;"> {{Knut CharacterData##CurrentHP}} </td><td><<thisPButton>></td><td><<thisMButton>></td></tr></table>
</$wikify>
</$wikify>
</$set>
</$set>
</$set>
!! Move: 40; Swim 10
''Special Qualities'': [[Low-Light Vision]], [[Scent]], [[Evasion]], [[Devotion]]
''Special Defenses'': None
|!Armor Class |!Total|!|!Armor|!Shield|!DEX|!Size|!Dodge|!Natural|!Deflect|!Misc|!Temp|
|!AC | 21 | 10 | +0 | +0 | +2 | +0 | +0 | +5 | +0 | +0 | +4 |
|!Touch | 12 | 10 ||| +2 | +0 | +0 | +0 | +0 | +0 ||
|!Flat-Foot | 19 | 10 | +0 | +0 || +0 || +5 | +0 | +0 | +4 |
Modifiers: None Temp: [[Mage Armor|Mage Armor Spell]] +4
!! [[Base Attack Bonus|Knut Leveling]]: +<<knutBaseAttackBonus>>
!! Initiative: +2
!!! Saves
{{Knut Saving Throws}}
!!! Combat Information
|!Attacks |!Total|!|!BAB|!STR|!DEX|!Size|!Misc|!Temp|!Notes |
|!Melee | +8 || +4 | +4 || +0 | +0 | +0 ||
|!Ranged | +6 || +4 || +2 | +0 | +0 | +0 ||
|!CMB | +8 || +4 | +4 || +0 | +0 | +0 ||
|!CMD | 20 | 10 | +4 | +4 | +2 | +0 | +0 | +0 |+4 vs Trip |
!!! Attacks
|!Weapon |!Attack|!Damage|!Critical|!Type|!Notes |
|Claw Single | +8 |1d4+4| x2 |S|Natural|
|Claw Full | +8 |1d4+4| x2 |S|Natural|
|Bite Primary | +8 |1d6+6| x2 |P/S|Natural|
|Bite Secondary | +3 |1d6+2| x2 |P/S|Natural|
<$list filter="[tag[Feat]tag[Knut]sort[title]]">
<$transclude mode="block"/>
</$list>
! [[Tricks, Feats and Features|Knut Features]]
@@.borderless
|![[Tricks|Tricks]] |<|<|
|!Base |[[Combat Training|Handle Animal]]|[[Attack|Attack Trick]], [[Come|Come Trick]], [[Defend|Defend Trick]], [[Down|Down Trick]], [[Guard|Guard Trick]], [[Heel|Heel Trick]]|
|!1^^st^^ |[[Attack Unnatural|Attack Trick]]||
|!3^^rd^^ |[[Sneak|Sneak Trick]]||
|!6^^th^^ |[[Rescue|Rescue Trick]]||
| |<|<|
|![[Animal Companion Features|Nature Bond]] |<|<|
|!Racial |[[Low-Light Vision]], [[Scent]] |<|
|!1^^st^^ |[[Link]], [[Share Spells]]|<|
|!3^^rd^^ |[[Evasion]]|<|
|!6^^th^^ |[[Devotion]]|<|
| |<|<|
|![[Feats|Knut Feats]] |<|<|
|!Flaw |[[Heat Sensitivity]]|Fatigued in warm weather|
|!Bonus |[[Skill Focus (Survival)|Skill Focus]]|Bonus to Survival|
|!1^^st^^ |[[Polar Bear]]|Gain swim speed, cold endurance and snow adaptation|
|!2^^nd^^ |[[Share Feature]] ([[Icewalking]])|Gain the [[Icewalking]] Class Feature of your Master|
|!5^^th^^ |[[Power Attack]] |<$calc>-1*floor((4+<<knutBaseAttackBonus>>)/4)</$calc> Attack, +<$calc>2*floor((4+<<knutBaseAttackBonus>>)/4)</$calc> Damage |
@@
! [[Knut, Animal Companion|Knut Leveling]]
!!![[Polar Bear|Nature Bond]] (Grizzly Bear)
"""
The infamous grizzly bear is a lumbering and quite impressive companion, particularly when it rises up on its hind feet to loom large. Grizzly bears strike fear into the hearts of most who encounter them.
''Starting Statistics''
''Size'' Medium; ''Speed'' 40 ft., ''Swim'' 10 ft.; ''AC'' +1 natural armor;
''Attack'' bite (1d6), 2 claws (1d4);
''Ability Scores'' STR 17, DEX 13, CON 15, INT 2, WIS 13, CHA 6;
''Special Attacks'' none;
''Special Qualities'' [[low-light vision|Low-Light Vision]], [[scent|Scent]]
''7th-Level Advancement'': ''Size'' Large; ''AC'' +4 natural armor; ''Attack'' bite (1d8), 2 claws (1d6); Ability Scores Str +6, Dex –2, Con +4; ''Special Attacks'' [[grab|Grab]].
"""
|!Class Level|! HD|!BAB|!Fort|! Ref|! Will|! Skills|! Feats|! Natural Armor Bonus|! STR/DEX Bonus|! Bonus Tricks|!Special|
|1st | 2 | +1 | +3 | +3 | +0 | 2 | 1 | +0 | +0 | 1 | [[Link]], [[Share Spells]]|
|2nd| 3 | +2 | +3 | +3 | +1 | 3 | 2 | +0 | +0 | 1 | |
|3rd | 3 | +2 | +3 | +3 | +1 | 3 | 2 | +2 | +1 | 2 |[[Evasion]] |
|4th | 4 | +3 | +4 | +4 | +1 | 4 | 2 | +2 | +1 | 2 |Ability Score Increase (CON) |
|5th | 5 | +3 | +4 | +4 | +1 | 5 | 3 | +2 | +1 | 2 | |
|6th | 6 | +4 | +5 | +5 | +2 | 6 | 3 | +4 | +2 | 3 |[[Devotion]] |
|!Save|!Mod|!Base|!Ability|!Misc|!Temp|
|!Fort|+8|+5|+3|+0||
|!Refl|+7|+5|+2|+0||
|!Will|+3|+2|+1|+0|+4 Enchantment ([[Devotion]]) |
! [[Knut Skills]]
|>| !Skills |!Ability|!|!Total|!Rank|!Mod|!Class|!ACP|!Misc|!Notes |
|<$checkbox tiddler="KnutClassSkillsData" index="Acrobatics" checked="1" unchecked="0" default="0"> </$checkbox>|[[Acrobatics]]|DEX||+6|1|+2|+3|+0|+0|[[No Penalty for ice/snow|Share Feature]]|
|<$checkbox tiddler="KnutClassSkillsData" index="Climb" checked="1" unchecked="0" default="0"> </$checkbox>|[[Climb]]|STR||+8|1|+4|+3|+0|+0|[[No Penalty for ice/snow|Share Feature]]|
|<$checkbox tiddler="KnutClassSkillsData" index="Escape Artist" checked="1" unchecked="0" default="0"> </$checkbox>|[[Escape Artist]]|DEX||+2||+2|+0|+0|+0||
|<$checkbox tiddler="KnutClassSkillsData" index="Fly" checked="1" unchecked="0" default="0"> </$checkbox>|[[Fly]]|DEX|||||||||
|<$checkbox tiddler="KnutClassSkillsData" index="Intimidate" checked="1" unchecked="0" default="0"> </$checkbox>|[[Intimidate]]|CHA||-2||-2|+0|+0|+0||
|<$checkbox tiddler="KnutClassSkillsData" index="Perception" checked="1" unchecked="0" default="0"> </$checkbox>|[[Perception]]|WIS||+6|2|+1|+3|+0|+0|+8 Racial [[Scent]]|
|<$checkbox tiddler="KnutClassSkillsData" index="Perform" checked="1" unchecked="0" default="0">*</$checkbox>|[[Perform]]|CHA|||||||||
|<$checkbox tiddler="KnutClassSkillsData" index="Sense Motive" checked="1" unchecked="0" default="0"> </$checkbox>|[[Sense Motive]]|WIS||+1||+1|+0|+0|+0||
|<$checkbox tiddler="KnutClassSkillsData" index="Stealth" checked="1" unchecked="0" default="0"> </$checkbox>|[[Stealth]]|DEX||+6|1|+2|+3|+0|+0|[[No Penalty for ice/snow|Share Feature]]|
|<$checkbox tiddler="KnutClassSkillsData" index="Survival" checked="1" unchecked="0" default="0"> </$checkbox>|[[Survival]]|WIS||+5|1|+1|+0|+0|+3|[[Skill Focus (Survival)|Skill Focus]]|
|<$checkbox tiddler="KnutClassSkillsData" index="AcroSwimatics" checked="1" unchecked="0" default="0"></$checkbox>|[[Swim]]|STR||+12||+4|+0|+0|+8|[[Racial Swim|Polar Bear]]|
"""
Modifiers: None
"""
[[Total Ranks|Leveling]]: 4 Max Rank: 4
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
Acrobatics: 1
Climb: 1
Perception: 1
Stealth: 1
Swim: 1
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AAAAAFRvcCBVbnRGI1JsdAAAAAAAAAAAAAAAAFNjbCBVbnRGI1ByY0BZAAAAAAAAAAAAEGNyb3BXaGVuUHJpbnRpbmdib29sAAAAAA5jcm9wUmVjdEJvdHRvbWxvbmcAAAAAAAAADGNyb3BSZWN0TGVmdGxvbmcAAAAAAAAADWNyb3BSZWN0UmlnaHRsb25nAAAAAAAAAAtjcm9wUmVjdFRvcGxvbmcAAAAAADhCSU0D7QAAAAAAEACWAAAAAQABAJYAAAABAAE4QklNBCYAAAAAAA4AAAAAAAAAAAAAP4AAADhCSU0EDQAAAAAABAAAAHg4QklNBBkAAAAAAAQAAAAeOEJJTQPzAAAAAAAJAAAAAAAAAAABADhCSU0nEAAAAAAACgABAAAAAAAAAAE4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAM4QklNBAIAAAAAAAgAAAAAAAAAADhCSU0EMAAAAAAABAEBAQE4QklNBC0AAAAAAAYAAQAAAAY4QklNBAgAAAAAABAAAAABAAACQAAAAkAAAAAAOEJJTQQeAAAAAAAEAAAAADhCSU0EGgAAAAADSQAAAAYAAAAAAAAAAAAAAXIAAAIrAAAACgBVAG4AdABpAHQAbABlAGQALQAyAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAIrAAABcgAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAABcgAAAABSZ2h0bG9uZwAAAisAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAA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c2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTctMDUtMjlUMTY6Mzk6MzgtMDQ6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTctMDUtMjlUMTY6Mzk6MzgtMDQ6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE3LTA1LTI5VDE2OjM5OjM4LTA0OjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjNkN2VlNzVhLTA1NmYtNDIwNS1hZTI4LTM3MTVkOTMxODAzMCIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjU0MDVlMzJkLTg1MjUtMTE3YS1iODA0LWEzMjI3YjkyYjc2NiIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmIxOGI3YzdlLWZlOWEtNDM1My1hNzA2LTdhZTVmNWUyZTFlMyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmIxOGI3YzdlLWZlOWEtNDM1My1hNzA2LTdhZTVmNWUyZTFlMyIgc3RFdnQ6d2hlbj0iMjAxNy0wNS0yOVQxNjozOTozOC0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjNkN2VlNzVhLTA1NmYtNDIwNS1hZTI4LTM3MTVkOTMxODAzMCIgc3RFdnQ6d2hlbj0iMjAxNy0wNS0yOVQxNjozOTozOC0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDxwaG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDxyZGY6QmFnPiA8cmRmOmxpPnhtcC5kaWQ6MmExNTA1NzktN2M2Mi00YzAzLThmZjAtMGRjMDRhODU2MTA5PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo5ZTFkYTI3Yi0zZTBiLTQ4M2ItOTkxNi05MjdmMjljMzcyZjA8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmJiNDA5MzdjLTcyZGUtNDM3ZC05MGFhLTAzMzIxMDExOGMyYzwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6Zjc2NTgyYTEtYjE1Mi00NjZmLTllYTMtZTRiN2RkY2RlOWMwPC9yZGY6bGk+IDwvcmRmOkJhZz4gPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Lava Missile
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [fire]
1 standard action V, S, DF
Range: medium (100 ft. + 10 ft./level)
Targets: up to 5 creatures, no two of which can be more than 15 ft. apart
Duration: instantaneous
Saving Throw: Reflex half Spell Resistance: no
"""
A missile of lava darts forth from your fingertip and strikes its target, dealing 1d4 points of fire damage. The missile strikes unerringly if the target has less than total cover or concealment. Specific parts of a creature can't be singled out. A target that fails its saving throw catches on fire. For every two caster levels, you gain an additional missile - two at 4th level, three at 6th level, four at 8th level, and the maximum of five at 10th level or higher. If you shoot multiple missiles, you can have them strike a single creature or several creatures. A single missile can strike only one creature. You must designate targets before you check for spell resistance or roll damage.
Source: Serpent Kingdoms
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Lay Of The Land
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 minute V, S, M (a piece of soil from the land to be memorized)
Range: personal
Targets: you
Duration: 1 day
Saving Throw: none Spell Resistance: yes
"""
In a flash of recognition, you learn about the geography of your surroundings within a radius of 1 mile per 2 caster levels (minimum 1 mile). This instant familiarity grants you an insight bonus equal to your caster level (maximum +5) on Knowledge (geography) checks and Survival checks to avoid getting lost so long as you remain in the affected area. Additionally, for the duration of the spell you can make Knowledge (geography) checks regarding the affected area as though you were trained in that skill.
Source: Faiths & Philosophies
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Lead Anchor
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, M (a bag of air), DF
Range: touch
Targets: creature touched
Duration: 10 minutes/level
Saving Throw: Will negates Spell Resistance: yes
"""
The target's buoyancy becomes and stays swiftly sinking, regardless of how dense the target and its gear are. Among other effects, the target can walk on the bottom, but she also needs to succeed at a DC 20 Swim check to swim towards the surface and to stay above the bottom (see Buoyancy on page 43). This makes lead anchor a useful spell both for exploring the sea floor and for drowning an air-breathing foe in the water.
Source: Aquatic Adventures
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Lead Plating
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation)
1 standard action V, S, F (an ounce of lead)
Range: touch
Targets: a creature or object weighing up to 100 lbs./level
Duration: 1 minute/level (D)
Saving Throw: Will negates (harmless, object) Spell Resistance: yes (harmless, object)
"""
You enclose the target in a thin sheath of lead. This doesn't restrict the target's movement or functionality, but protects it from the effects of radiation and prevents the penetration of many divination spells. The lead doesn't coat the target's equipment.
Source: Kobolds Of Golarion
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Leap into Animal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: 10 ft.
Targets: you and one willing animal; see text
Duration: 1 minute/level (D)
Saving Throw: Will negates Spell Resistance: yes
"""
Leap into animal enables you to meld your body and up to 100 pounds of nonliving gear into a single willing animal (such as an animal companion). The animal must be your size category or larger. To any observer, you appear to leap and phase into the animal; you are gone, while the animal remains. For all intents and purposes, you no longer exist while merged with the animal, and you cannot be detected or affected by anything as long as you remain within it. While melded with the animal, you mentally direct its actions. You can make it attack, run, or take any other action it could normally physically accomplish. However, because you are directing the animal with your own intelligence, it can undertake actions normally beyond its own instincts (such as manipulating objects with its claws or mouth). Suicidal or self-destructive commands (including an order to attack a creature two or more size categories larger) are ignored. You receive direct sensory input from the creature using its normal senses and skill modifiers. You cannot take any mental actions while within the animal other than directing it or dismissing the effect (such that you cannot manifest a psionic power or cast a spell, even if it has no components). Injury to the animal has no effect on you. If the animal is killed, if the spell is dispelled or dismissed, or if the spell's duration expires, you appear (as if leaping forth from the animal) in an open space of your choice within 10 feet of the animal's position. If no open space exists, you are shunted to the nearest open space and take 1d6 points of damage per 10 feet so moved.
Source: Magic of Eberron
''Prerequisites'': [[Survival]] 5 ranks.
''Benefit'': Select one ranger trap. You may use this trap a number of times per day equal to your Wisdom bonus (minimum 1). The DC for your trap is equal to 10 + 1/2 your character’s level + your Wisdom bonus, and it lasts 1 day per two character levels.
If you are not a ranger, you can only set extraordinary traps with this feat; like all extraordinary ranger traps, this decreases the trap DC by 2.
''Special'': A ranger may use ranger traps a number of times per day equal to 1/2 his ranger level plus his Wisdom bonus.
''House Rule'': Must have at least one arcane spell slot unused to prepare a Supernatural Trap.
! Leopard
|N Medium animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +5|
|!Defense |
|''AC'' 15, touch 14, flat-footed 11 |
|''hp'' 19 (3d8+6) |
|''Fort'' +5, ''Ref'' +7, ''Will'' +2 |
|!Offense |
|''Speed'' 30 ft., climb 20 ft. |
|''Melee'' bite +6 (1d6+3 plus grab), 2 claws +6 (1d3+3) |
|''Special Attacks'' [[Pounce]], [[Rake]] (2 claws +6, 1d3+3) |
|!Statistics |
|''Str'' 16, ''Dex'' 19, ''Con'' 15, ''Int'' 2, ''Wis'' 13, ''Cha'' 6 |
|''Base Attack'' +2, ''CMB'' +6 (+10 grapple), ''CMD'' 19 (23 vs. [[Trip]]) |
|''Feats'' Skill Focus (Stealth), Weapon Finesse |
|''Skills'' Acrobatics +8, Climb +11, Perception +5, Stealth +11 (+15 in undergrowth) |
|''Racial Modifiers'' +4 on Stealth in undergrowth |
|!Special Abilities |
Leopards are 4 feet long and weigh 120 pounds. The statistics presented here can describe any feline of similar size, such as jaguars, panthers, and mountain lions—what differentiates these big cats from the similarly sized cheetah is primarily their habitats—leopards and their kin prefer to hunt at night and ambush their prey from above, pouncing down from trees or high rocks.
Leopards eat almost any animal they can run down and catch, preferring Small prey but capable of downing Large herbivores or surviving on rodents, birds, and insects. Healthy leopards are generally not aggressive toward humanoids, and if they aren’t hungry and don’t feel threatened, it is possible to approach closely without a hostile reaction. Yet a leopard that settles in an area bordered by humanoid civilization can easily and swiftly become a dangerous predator.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Lesser Aura of Cold
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: 5 ft.
Area: 5-ft.-radius emanation centered on you
Duration: 1 round /level (D)
Saving Throw: none Spell Resistance: yes
"""
You are covered in a thin layer of white frost and frigid cold emanates from your body, dealing 1d6 points of cold damage at the start of your round to each creature within 5 feet.
Source: Frostburn
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Lesser Curse Terrain
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
necromancy
10 minutes V, S, M (the heart of a creature that dwelled in the area and powdered onyx worth 350 gp)
Range: touch
Area: 300-ft. radius emanating from the touched point
Duration: 1 day (D)
Saving Throw: none Spell Resistance: no
"""
By touching the ground, you curse the land with three unnatural hazards, as the minor perilous demesne curse (see page 145). Though this makes the hazards appear frequently, their manifestations are still unpredictable-you can't control when the hazards begin or end, nor where they appear within the cursed terrain. Curse terrain spells can be made permanent with a permanency spell. The minimum caster level and gp cost are shown on the table. The spell is still dismissable if made permanent. Spell Minimum Caster Level GP Cost Lesser curse terrain 9th 2,500 gp Curse terrain 11th 7,500 gp Greater curse terrain 15th 17,500 gp Supreme curse terrain 19th 27,500 gp
Source: Horror Adventures
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Lesser Orb of Electricity
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation) [electricity]
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Effect: One orb of electricity
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
An orb of acid about 2 inches across shoots from your palm at its target, dealing 1d8 points of acid damage. You must succeed on a ranged touch attack to hit your target. For every two caster levels beyond 1st, your orb deals an additional 1d8 points of damage: 2d8 at 3rd level, 3d8 at 5th level, 4d8 at 7th level, and the maximum of 5d8 at 9th level or higher.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Lesser Restorationr
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (healing)
3 rounds V, S
Range: touch
Targets: creature touched
Duration: instantaneous
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
Lesser restoration dispels any magical effects reducing one of the subject's ability scores or cures 1d4 points of temporary ability damage to one of the subject's ability scores. It also eliminates any fatigue suffered by the character, and improves an exhausted condition to fatigued. It does not restore permanent ability drain.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Lesser Vigor
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (healing)
1 standard action V, S
Range: touch
Targets: living creature touched
Duration: 10 rounds + 1 round/level (max 15 rounds)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The subject gains fast healing 1, enabling it to heal 1 hit point per round until the spell ends and automatically becoming stabilized if it begins dying from hit point loss during that time. Lesser vigor does not restore hit points lost from starvation, thirst, or suffocation, nor does it allow a creature to regrow or attach lost body parts. The effects of multiple vigor spells do not stack; only the highest-level effect applies.
Source: Spell Compendium
! [[Leveling]]
! Changes by Level
|!Level|!Class|!hp|!BAB|!Fort|!Refl|!Will|!Skills|!Feats|!Features|!Druid Spells|!Druid CL|!Sorcerer Spells|!Sorcerer CL|
| 1 | Druid 1 | 10 | +0 | +2 | +0 | +2 | <<classDataLookup "Druid,Skills">>+<<classDataLookup "Druid,KnowSkills">> | 4 | 9 | 1 | 1 | 0 | 0 |
| 2 | Sorcerer 1 | +7 | +1 | +0 | +0 | +1 | <<classDataLookup "Sorcerer,Skills">>+<<classDataLookup "Sorcerer,KnowSkills">> | 1 | 7 | 1 | 2 | 1 | 2 |
| 3 | Druid 2 | +10 | +1 | +1 | +1 | +0 | <<classDataLookup "Druid,Skills">>+<<classDataLookup "Druid,KnowSkills">> | 0 | 1 | 2 | 3 | 1 | 3 |
| 4 | Druid 3 | +7 | +0 | +0 | +0 | +1 | <<classDataLookup "Druid,Skills">>+<<classDataLookup "Druid,KnowSkills">> | 1 | 1 | 3 | 4 | 1 | 3 |
| 5 | Mystic Theurge 1 | +8 | +1 | +1 | +0 | +0 | <<classDataLookup "Mystic Theurge,Skills">>+<<classDataLookup "Mystic Theurge,KnowSkills">> | 1 | 1 | 4 | 5 | 2 | 4 |
| 6 | Mystic Theurge 2 | +8 | +0 | +0 | +1 | +1 | <<classDataLookup "Mystic Theurge,Skills">>+<<classDataLookup "Mystic Theurge,KnowSkills">> | 0 | 0 | 5 | 6 | 3 | 5 |
{{Druid Spells Table}}
{{Sorcerer Spells Table}}
|!Level|!Skills|<|<|<|<|<|<|<|<|<|<|<|<|<|<|
|~|Acro|Bluff|Climb|Craft|Handle|Heal|K Arc|K Geog|K Nat|K Planes|K Relig|Perc|Sense M|Spellc|Surv|
| Total | 1 | 1 | 1 | 1 | 6 | 1 | 4 | 1 | 5 | 3 | 5 | 5 | 1 | 5 | 5 |
| 1 | | | | 1 | 1 | 1 | | 1 | 1 | | | 1 | | 1 | 1 |
| 2 | 1 | 1 | | | 1 | | 1 | | 2 | | 1 | | | | |
| 3 | | | 1 | | 1 | | | | | 1 | 1 | 2 | | | 2 |
| 4 | | | | | 1 | | 1 | | | | 1 | 1 | 1 | 2 | 1 |
| 5 | | | | | 1 | | 1 | | 1 | 1 | 1 | | | 1 | 1 |
| 6 | | | | | 1 | | 1 | | 1 | 1 | 1 | 1 | | 1 | |
|!Level|!Changes|<|
| !1^^st^^ |Druid 1 |<|
|~| [[Druid Proficiencies|Proficiencies]]||
|~| [[Add Druid Class Skills|Class Skills]]||
|~| [[Nature Bond (Companion)|Nature Bond]]|Druid Level 1|
|~| [[Nature Bond (Domain)|Cold Domain]]|Druid Level 1|
|~| [[Domain Power: Icicle|Cold Domain]]|1d6 [cold], 8/day|
|~| [[Nature Sense]]||
|~| [[Wild Empathy]]|+5 CHA|
|~| [[Spellcasting (Druid)|Druid Spellcasting]]|Progression 1, CL 1|
|~|Feat (Flaw 1): [[Additional Domain (Cold)|Additional Domain]]||
|~|Feat (Flaw 2): [[Boon Companion]]||
|~|Feat (Human): [[Snowcasting]]||
|~| |<|
| !2^^nd^^ |Sorcerer 1 |<|
|~| [[Sorcerer Proficiencies|Proficiencies]]||
|~| [[Add Sorcerer Class Skills|Class Skills]]||
|~| [[Bloodline (Elemental)|Elemental Bloodline]]|Sorcerer Level 1|
|~| [[Add Bloodline Class Skill|Elemental Bloodline]]|
|~| [[Bloodline Arcana|Elemental Bloodline]]||
|~| [[Bloodline Power: Cold Ray|Elemental Bloodline]]|1d6 [cold], 7/day|
|~| [[Eschew Materials Bonus Feat|Eschew Materials]]||
|~| [[Spellcasting (Sorcerer)|Sorcerer Spellcasting]] (including [[Magical Knack]])|Progression 1, CL 2|
|~|[[Spellcasting (Druid)|Druid Spellcasting]] (from [[Magical Knack]])|Progression 1, CL 2|
|~|[[Nature Bond (Companion)|Nature Bond]] (from [[Boon Companion]])|Druid Level 2|
|~|Feat (1st): [[Elemental Theurgy (Cold)|Elemental Theurgy]]||
|~|Feat (Sorcerer 1): [[Eschew Materials Bonus Feat|Eschew Materials]]||
|~| |<|
| !3^^rd^^ |Druid 2 |<|
|~| [[Icewalking]]||
|~| [[Nature Bond (Companion)|Nature Bond]] (including [[Boon Companion]])|Druid Level 3|
|~| [[Nature Bond (Domain)|Cold Domain]]|Druid Level 2|
|~| [[Domain Power: Icicle|Cold Domain]]|1d6+1 [cold], 8/day|
|~| [[Wild Empathy]]|+6 CHA|
|~| [[Spellcasting (Druid)|Druid Spellcasting]] (including [[Magical Knack]])|Progression 2, CL 3|
|~|[[Spellcasting (Sorcerer)|Sorcerer Spellcasting]] (including [[Magical Knack]])|Progression 1, CL 3|
|~| |<|
| !4^^th^^ |Druid 3 |<|
|~| [[Arctic Endurance]]||
|~| [[Nature Bond (Companion)|Nature Bond]] (including [[Boon Companion]])|Druid Level 4|
|~| [[Nature Bond (Domain)|Cold Domain]]|Druid Level 3|
|~| [[Wild Empathy]]|+7 CHA|
|~| [[Spellcasting (Druid)|Druid Spellcasting]] (including [[Magical Knack]])|Progression 3, CL 4|
|~| |<|
|!5^^th^^ |Mystic Theurge 1 |<|
|~| [[Combined Spells (1st)|Combined Spells]]| Cast 1st Level Spells with 2nd Level slots |
|~| [[Spellcasting (Druid)|Druid Spellcasting]] (including [[Magical Knack]])|Progression 4, CL 5|
|~| [[Spellcasting (Sorcerer)|Sorcerer Spellcasting]] (including [[Magical Knack]])|Progression 2, CL 4|
|~| |<|
|!6^^th^^ |Mystic Theurge 2 |<|
|~| [[Spellcasting (Druid)|Druid Spellcasting]] (including [[Magical Knack]])|Progression 5, CL 6|
|~| [[Spellcasting (Sorcerer)|Sorcerer Spellcasting]] (including [[Magical Knack]])|Progression 3, CL 5|
|~| |<|
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Liberating Command
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 immediate action V
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: instantaneous
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
If the target is bound, grappled, or otherwise restrained, he may make an Escape Artist check to escape as an immediate action. He gains a competence bonus on this check equal to twice your caster level (maximum +20). This spell has no effect if the target could not get free by using the Escape Artist skill (for example, if he were under the effects of a hold person spell or paralyzed by Strength damage).
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Life Current
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (healing) [water]
1 standard action V, S, DF
Range: medium (100 ft. + 10 ft./level)
Area: current or portion of current up to 20 feet wide and 100 feet long
Duration: 1 round
Saving Throw: Will half Spell Resistance: yes
"""
You infuse the current with positive energy. At the start of their turn when the current moves them, living creatures in the current's area heal 1d6 hit points per 10 feet of the current's speed (maximum 6d6). Undead creatures in the current instead take an equal amount of damage.
Source: Aquatic Adventures
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Life Shield
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (healing)
1 standard action S, DF
Range: personal
Targets: you
Duration: 1 minute/level or until discharged
Saving Throw: Spell Resistance:
"""
You surround yourself with a positive energy field that damages undead opponents. Each time an undead creature damages you with a melee attack, that creature takes an amount of positive energy damage equal to half the damage it dealt to you. This damage is calculated after applying your damage reduction, resistances, and other defenses. Once this spell has dealt 5 points of damage per caster level (maximum 50), it is discharged.
Source: Undead Slayer's Handbook
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Light
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
evocation
1 standard action V, M/DF (a firefly)
Range: touch
Targets: object touched
Duration: 10 min./level
Saving Throw: none Spell Resistance: no
"""
This spell causes a touched object to glow like a torch, shedding normal light in a 20-foot radius from the point touched, and increasing the light level for an additional 20 feet by one step, up to normal light (darkness becomes dim light, and dim light becomes normal light). In an area of normal or bright light, this spell has no effect. The effect is immobile, but it can be cast on a movable object. You can only have one light spell active at any one time. If you cast this spell while another casting is still in effect, the previous casting is dispelled. If you make this spell permanent (through permanency or a similar effect), it does not count against this limit. Light can be used to counter or dispel any darkness spell of equal or lower spell level.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Lily Pad Stride
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (a frog's leg)
Range: long (400 ft. + 40 ft./level)
Effect: trail of lily pads behind you
Duration: 10 minutes/level (D); see text
Saving Throw: none Spell Resistance: no
"""
Your every footstep creates aquatic plants capable of supporting your weight and that of any creature of your size or smaller that is following you. These lily pads only appear when you cross water or other liquids which do not immediately destroy plants. You can walk across these liquid surfaces without any fear of stumbling (though if knocked prone, dragged under, or otherwise pulled off your feet you still sink in the liquid). For the duration of the spell, any creature of your size or smaller can attempt to follow you by making a DC 10 Acrobatics check every round. Each such check allows it to move at half its normal land speed. If the creature takes a -5 penalty on its check it can move at its normal speed. If a creature fails an Acrobatics check, or if a creature that's larger than you attempts to follow, it falls through, damaging the plants. Each time a creature falls through, all subsequent creatures take a cumulative -5 penalty on their Acrobatics checks when traveling across that particular stretch of plants. As you move, the lily pads disappear behind you once you pass beyond the spell's range. Otherwise, they remain until the spell's duration expires.
Source: APG
You are skilled at working with language, in both its spoken and written forms. You can speak multiple languages, and can decipher nearly any tongue given enough time. Your skill in writing allows you to create and detect forgeries as well.
You can decipher writing in an unfamiliar language or a message written in an incomplete or archaic form. The base DC is 20 for the simplest messages, 25 for standard texts, and 30 or higher for intricate, exotic, or very old writing. If the check succeeds, you understand the general content of a piece of writing about one page long (or the equivalent). If the check fails, make a DC 5 Wisdom check to see if you avoid drawing a false conclusion about the text. (Success means that you do not draw a false conclusion; failure means that you do.)
Both the Linguistics check and (if necessary) the Wisdom check are made secretly by the GM, so that you can’t tell whether the conclusion you draw is true or false.
!! Common Uses
!! Learn a Language
See below.
!! Create or Detect Forgeries
Creating a forgery can take anywhere from 1 minute to 1d4 minutes per page. Detecting a forgery using Linguistics takes 1 round of examination per page.
|!Condition | !Linguistics Check Modifier |
|Type of document unknown to reader | –2 |
|Type of document somewhat known to reader | +0 |
|Type of document well known to reader | +2 |
|Handwriting not known to reader | –2 |
|Handwriting somewhat known to reader | +0 |
|Handwriting intimately known to reader | +2 |
|Reader only casually reviews the document | –2 |
|Document contradicts orders or knowledge | +2 |
Forgery requires writing materials appropriate to the document being forged. To forge a document on which the handwriting is not specific to a person, you need only to have seen a similar document before, and you gain a +8 bonus on your check. To forge a signature, you need an autograph of that person to copy, and you gain a +4 bonus on the check. To forge a longer document written in the hand of some particular person, a large sample of that person’s handwriting is needed.
The Linguistics check is made secretly, so that you’re not sure how good your forgery is. As with Disguise, you don’t make a check until someone examines the work. Your Linguistics check is opposed by the Linguistics check of the person who examines the document to verify its authenticity. The examiner gains modifiers if any of the conditions are listed on the table above.
''Action''
Varies. Deciphering a page of ordinary text takes 1 minute (10 consecutive rounds). Creating a forgery can take anywhere from 1 minute to 1d4 minutes per page. Detecting a forgery using Linguistics takes 1 round of examination per page.
''Retry?'' Yes.
!! Modifiers
''Trained ''
You must be trained to use this skill, but you can always attempt to read archaic and strange forms of your own racial bonus languages. In addition, you can also always attempt to detect a forgery.
''Special''
Members of the same organization (such as a city’s thieves’ guild) gain a +2 circumstance bonus on Bluff and Linguistics checks to pass secret messages to each other, and on Sense Motive checks to intercept messages from their allies.
''Special ''
A sign language or gestural system can be used as a free action to silently communicate simple concepts to others who know the language or code, so long as those communicating can clearly see each other. More complicated conversations require additional time, just as with verbal speech. Some gestural systems are too simple to communicate more than basic tactical information. Onlookers unfamiliar with the gestures can interpret the secret message with a successful DC 25 Linguistics or Sense Motive check.
{{Pathfinder Languages}}
!! Link ([[Ex|Extraordinary Ability]])
A druid can handle her animal companion as a free action, or push it as a move action, even if she doesn’t have any ranks in the Handle Animal skill. The druid gains a +4 circumstance bonus on all wild empathy checks and Handle Animal checks made regarding an animal companion.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Linked Perception
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 standard action V, DF
Range: 20 ft.
Area: 20-ft.-radius emanation centered on you
Duration: 1 minute/level (D)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
Your senses are muddied for a moment, but when they clear, your sight and hearing are improved.
This spell imparts to all allies in its area a shared awareness of their surroundings.
Each ally in the area (including yourself ) gains a +2 bonus on Perception checks per each ally in the area.
For example, if you and three allies are in the area, each of you gains a +6 bonus.
Source: Player's Handbook II
! Lion
|N Large animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +9|
|!Defense |
|''AC'' 15, touch 12, flat-footed 12 |
|''hp'' 32 (5d8+10) |
|''Fort'' +6, ''Ref'' +7, ''Will'' +2 |
|!Offense |
|''Speed'' 40 ft. |
|''Melee'' bite +7 (1d8+5 plus grab), 2 claws +7 (1d4+5) |
|''Space'' 10, ''Reach'' 5 |
|!Statistics |
|''Str'' 21, ''Dex'' 17, ''Con'' 15, ''Int'' 2, ''Wis'' 12, ''Cha'' 6 |
|''Base Attack'' +3, ''CMB'' +9 (+13 grapple), ''CMD'' 22 (26 vs. [[Trip]]) |
|''Feats'' Improved Initiative, Run, Skill Focus (Perception) |
|''Skills'' Acrobatics +11, Perception +9, Stealth +8 (+12 in undergrowth) |
|''Racial Modifiers'' +4 Acrobatics, +4 Stealth (+8 in undergrowth) |
|!Special Abilities |
Male lions are 5 to 8 feet long and weigh 330 to 550 pounds. Females are slightly smaller but use the same statistics.
Lions are usually the top animal predators in their territories, though they resort to scavenging if convenient or necessary. They may kill other predators (such as leopards and hyenas) that encroach upon their haunts, but rarely eat these kills unless game is scarce. Most lions do not selectively hunt humanoids, but occasionally one learns what easy kills they are and becomes a man-eater.
Lions prefer plains but can adapt to living in shallow caves as long as there’s a large and stable supply of prey to keep them fed.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Locate Portal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 standard action V, S
Range: 1 mile/level
Area: circle, centered on you, with a radius of 1 mile/level
Duration: concentration, up to 1 minute/level
Saving Throw: Spell Resistance:
"""
When this spell is active, you feel a mental pull in the direction of any active or operable portal leading to another plane within range of the spell. If multiple portals are present, you are pulled only to the nearest one. If moving causes you to become closer to a different portal, you become drawn to that one instead. The spell gives you the direction of the portal only, not a route. Once you are within 10 feet of the portal, you no longer feel the pull, only the portal's presence. The spell does not pinpoint or otherwise reveal hidden portals, nor does it do anything to aid in opening or operating them.
Source: The First World Realm Of The Fey
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Lockjaw
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (sticky tree gum)
Range: touch
Targets: creature touched
Duration: 1 round/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
You give a creature the ability to use one of its natural attacks to firmly attach itself to an opponent. Choose one of the creature's natural attacks (usually a claw or bite attack). The creature gains the grab ability with that natural attack, including the +4 bonus on combat maneuver checks to start or maintain a grapple. A creature with multiple natural attacks can strike at its grappled opponent with its other natural attacks, but cannot attack any other creature.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Longstrider
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M (a pinch of dirt)
Range: personal
Targets: you
Duration: 1 hour/level
Saving Throw: Spell Resistance:
"""
This spell gives you a +10 foot enhancement bonus to your base speed. It has no effect on other modes of movement, such as burrow, climb, fly, or swim.
Source: PFRPG Core
@@.borderless
|!Loot |<|<|
|+1 Composite Short Bow (STR 16) (Jennifer)| |<|
|2 Arrows +1 of Flaming | |<|
|Cure Moderate Wounds Potion (CL 7) | |<|
|Studded Leather +1 (Keith)| |<|
|3 Tanglefoot Bags | |<|
|44 Normal Arrows | |<|
|Masterwork Battle Axe | |<|
|Vial from Ghouls | |<|
|Crossbow | |<|
|Tanglefoot Bag | |<|
|7 Hvy Wood Shield | |<|
|7 Flails and Battle Axes | |<|
|14 Daggers | |<|
|9 Long Bows | |<|
|200 Long Arrows | |<|
|Ring of Protection +2 (John) | |<|
|2 Water Skin | |<|
|Scroll Tube with Maps | |<|
|Small Book Travel Log | |<|
|Metal Shield +1 (Jennifer) | |<|
|+1 Long Sword (Jonathan) | |<|
|Rope 100' (at least 2 cuts | |<|
|Flint & Steel | |<|
|2 Long Swords | |<|
|40 Iron Spikes | |<|
|Crowbar (John) | |<|
|Twine | |<|
|Bottle of Holy Water (Jeff) | |<|
|Chain Mail | |<|
|Masterwork Chain Shirt | |<|
|Spearhead | |<|
|+1 Arrow | |<|
|Gem (200 gp) | |<|
|Silver Necklace (200 gp) | |<|
|+1 Dagger (Eric) | |<|
|Mystral Clerical Vestments (John) | |<|
|3 Gems 150, 125, 250 | |<|
|Gold Filigred Plate (400 gp) | |<|
|Centipede Poison (Raw) 5 doses (John) | |<|
|Lantern | |<|
|Pt of Oil | |<|
|Boots of Striding and Leaper (Chris) | |<|
|Masterwork Long Sword | |<|
|Wand Magic Missile CL 5 31 chrgs (Clark) | |<|
|Wand of Lesser Restore CL 5 41 chrgs (Jeff) | |<|
|3 Gems (250 gp each) | |<|
|Cure Light Wounds (L5) Scroll x3 | |<|
|Remove Disease (L12) Scroll x4 | |<|
|Cure Moderate Wounds (L8) Potion x2 | |<|
|8 Vials of Nondisgusting Stuff | |<|
|Book with Lock | |<|
|6 Large Books | |<|
|Silver Server Plate (100gp) | |<|
|Big Box with 1210sp | |<|
|Little Box with Sapphron (200gp) | |<|
|Bag with 245sp | |<|
|Bundle of 3 Scrolls | |<|
|5 Golden Rings "My One and Only" (50gp each) | |<|
|Silver-headed Light Mace | |<|
|Leather Bag with 500gp | |<|
|Earring, Obsidian Spear "Rappan Atthak" | |<|
|Small Box of Sapphron (200 gp) | |<|
|20630 cp | |<|
|10349 sp | |<|
|2000 gp | |<|
|4 Gems (100 gp each) | |<|
|Ornate Wand Eagles Splendor CL 3 32 chgs | |<|
@@
@@.borderless
|!Money Totals |<|<|
|1000 pp, 1681 gp, 15218 sp, 26245 cp | |<|
|Gems: 1875 gp | |<|
|Jewelry: 3650+200 gp | |<|
@@
!! Low-Light Vision ([[Ex|Extraordinary Ability]])
Characters with low-light vision have eyes that are so sensitive to light that they can see twice as far as normal in dim light. Low-light vision is color vision. A spellcaster with low-light vision can read a scroll as long as even the tiniest candle flame is next to him as a source of light.
Characters with low-light vision can see outdoors on a moonlit night as well as they can during the day.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Lucky Number
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: touch
Targets: one willing creature
Duration: 24 hours or until discharged
Saving Throw: none Spell Resistance: no
"""
You are able to tweak tiny variables affecting a creature's immediate future in order to grant the target a bit of luck at the right time. Roll a d20; once during the duration of lucky number, when the target creature rolls that result (regardless of what type of dice the target rolls), the creature has the option to either reroll the result or add a +2 luck bonus to the result. The creature must decide to use this ability before the success or failure of the original roll is known. A creature can have only one lucky number at a time. If lucky number is cast on a creature already affected by that spell, the new number replaces the previous one.
Source: Occult Mysteries
BAB: +<<baseAttackBonus>>
Fort: +<<baseSaves>>
Fort: +<<baseSaves Fort>>
Reflex: +<<baseSaves Ref>>
Will: +<<baseSaves Will>>
STR Modifier: <<statModifier STR>>
STR: <<charDataLookup STR>>
Skills: <<classDataLookup "Druid,Skills">>
Bonus Spells Druid: 1st: <<SPDModifier "WIS" "1">>, 2nd: <<SPDModifier "WIS" "2">>, 3rd: <<SPDModifier "WIS" "3">>, 4th: <<SPDModifier "WIS" "4">>, 5th: <<SPDModifier "WIS" "5">>, 6th: <<SPDModifier "WIS" "6">>, 7th: <<SPDModifier "WIS" "7">>, 8th: <<SPDModifier "WIS" "8">>, 9th: <<SPDModifier "WIS" "9">>
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mad Monkeys
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (summoning)
1 round V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Effect: swarm of monkeys
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
You summon a swarm of screeching, mischievous monkeys. The swarm understands and obeys your commands and has the statistics of a monkey swarm (Bestiary 2 212). Creatures failing a saving throw against the mad monkeys' distraction attack are deafened for 1 minute as well as nauseated. The monkeys attempt one disarm or steal combat maneuver each turn as a free action against any creature that begins its turn in the swarm, using your caster level plus your casting ability score bonus (Intelligence for wizards; Wisdom for druids; Charisma for bards, sorcerers, and summoners) for its CMB. Recovering an item from the monkeys requires a successful disarm or steal attempt against that CMB + 10. An object stolen by the monkeys takes swarm damage each round the swarm is in possession of the object.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mage Armor
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation) [force]
1 standard action V, S, F (a piece of cured leather)
Range: touch
Targets: creature touched
Duration: 1 hour/level (D)
Saving Throw: Will negates (harmless) Spell Resistance: no
"""
An invisible but tangible field of force surrounds the subject of a mage armor spell, providing a +4 armor bonus to AC. Unlike mundane armor, mage armor entails no armor check penalty, arcane spell failure chance, or speed reduction. Since mage armor is made of force, incorporeal creatures can't bypass it the way they do normal armor.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mage Hand
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
transmutation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one nonmagical, unattended object weighing up to 5 lbs.
Duration: concentration
Saving Throw: none Spell Resistance: no
"""
You point your finger at an object and can lift it and move it at will from a distance. As a move action, you can propel the object as far as 15 feet in any direction, though the spell ends if the distance between you and the object ever exceeds the spell's range.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Magic Boulder
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF
Range: touch
Targets: up to three boulders touched
Duration: 30 minutes or until discharged
Saving Throw: Will negates (harmless, object) Spell Resistance: yes (harmless, object)
"""
This spell works like magic stone, except you transmute as many as three boulders (rocks up to two size categories smaller than yourself) to use with the rock throwing ability or as siege engine ammunition. The boulder's damage increases by one step, and the boulder gains a +1 enhancement bonus on attack and damage rolls.
Source: Monster Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Magic Fang
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, DF
Range: touch
Targets: living creature touched
Duration: 1 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
Magic fang gives one natural weapon or unarmed strike of the subject a +1 enhancement bonus on attack and damage rolls. The spell can affect a slam attack, fist, bite, or other natural weapon. The spell does not change an unarmed strike's damage from nonlethal damage to lethal damage. Magic fang can be made permanent with a permanency spell.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Magic Stone
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, DF
Range: touch
Targets: up to three pebbles touched
Duration: 30 minutes or until discharged
Saving Throw: Will negates (harmless, object) Spell Resistance: yes (harmless, object)
"""
You transmute as many as three pebbles, which can be no larger than sling bullets, so that they strike with great force when thrown or slung. If hurled, they have a range increment of 20 feet. If slung, treat them as sling bullets (range increment 50 feet). The spell gives them a +1 enhancement bonus on attack and damage rolls. The user of the stones makes a normal ranged attack. Each stone that hits deals 1d6+1 points of damage (including the spell's enhancement bonus), or 2d6+2 points against undead.
Source: PFRPG Core
!![[Magical Knack]] (Magical)
You were raised, either wholly or in part, by a magical creature, either after it found you abandoned in the woods or because your parents often left you in the care of a magical minion. This constant exposure to magic has made its mysteries easy for you to understand, even when you turn your mind to other devotions and tasks.
''Benefit'': Pick a class when you gain this trait—your caster level in that class gains a +2 trait bonus as long as this bonus doesn’t raise your caster level above your current Hit Dice.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Make Lost
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
enchantment (compulsion) [mind-affecting]
1 round V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature/level, no two of which can be more than 30 ft. apart
Duration: instantaneous
Saving Throw: Will negates Spell Resistance: yes
"""
You strip the targets of their senses of direction and recent memories of travel. They immediately forget the route they took in the last hour (but not details of encounters along the way) and become lost (Pathfinder RPG Core Rulebook 424).
Source: Inner Sea Monster Codex
Maneuver (DC 20): The animal is trained to use a specific combat maneuver on command, even when it naturally wouldn’t do so (animals typically use combat maneuvers only when using a monster ability to make a free combat maneuver, since otherwise it would provoke an attack of opportunity). an animal must know the attack trick before it can be taught the maneuver trick, and it performs maneuvers only against targets it would normally attack. This trick can be taught to an animal multiple times. Each time it is taught, the animal can be commanded to use a different combat maneuver.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Marid's Mastery
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: touch
Targets: willing creature touched
Duration: 1 minute/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The target gains a +1 bonus on attack and damage rolls if it and its opponent are touching water. If the opponent or the target is touching the ground, the target takes a -4 penalty on attack and damage rolls.
Source: Advanced Race Guide
!![[Mark of the Witch]]
Urlik was accused of being a witch and given a helical scar up his left arm before being banished from the tribe and given to the Druids. Anyone from the Glacier who sees the Mark and recognizes it starts as Unfriendly towards Ulrik and he has a -4 to all CHA Rolls and Skills dealing with such a person.
Mark Territory (DC 25): Whether by spraying musk, rubbing its back against trees and rocks, or simply howling loudly, the companion lets other nearby animals know that it has claimed an area. By spending 1 hour performing this trick, the companion can mark an area of up to half a square mile in this fashion. If it does so, after 24 hours, whenever there would be a random encounter within that area that involves a wild animal or other creature of Intelligence 2 or less (including vermin but not other mindless creatures, such as oozes and mindless undead), there is a 25% chance that the encounter doesn’t actually occur, as creatures might be warded off by the markings. The companion must renew any territorial markings at least once per week, or they lose their effectiveness. There is also a 10% chance per week that the markings attract the attention of a powerful predator, which actively seeks out the companion to challenge it (and its master) for the territory.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mass Align Fang
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 level)
Targets: one creature/level, no two of which can be more than 30 ft. apart
Duration: 1 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like [[Align Fang|Align Fang Spell]], except that it affects multiple allies at a distance.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mass Camoflage
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Targets: any number of creatures, no two of which can be more than 60 ft. apart
Duration: 10 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like camouflage, except the effect is mobile with the group. The spell is broken for any individual who moves more than 60 feet from the nearest member of the group. (If only two individuals are affected, the one moving away from the other one loses its camouflage. If both are moving away from each other, they both become visible when the distance between them exceeds 60 feet.)
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mass Feather Step
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature/level, no two of which can be more than 30 ft. apart
Duration: 10 minutes/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes
"""
As feather step, except this spell affects multiple creatures.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mass Lesser Vigor
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (healing)
1 standard action V, S
Range: 20 ft.
Targets: one creature/2 levels, no two of which can be more than 30 feet apart
Duration: 10 rounds + 1 round/level (max 25 rounds)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like lesser vigor, except that it affects multiple creatures. The targets gain fast healing 1, enabling it to heal 1 hit points per round until the spell ends and automatically becoming stabilized if it begins dying from hit point loss during that time. Vigor does not restore hit points lost from starvation, thirst, or suffocation, nor does it allow a creature to regrow or attach lost body parts. The effects of multiple vigor spells do not stack; only the highest-level effect applies.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mass Snake Swiftness
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M/DF (a few scales of a snake)
Range: medium (100 ft. + 10 ft./level)
Targets: allied creatures in a 20-ft. radius burst
Duration: instantaneous
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like snake's swiftness, except that it affects multiple allies out to medium range. Snake Swiftness: The subject can immediately make one melee or ranged attack. Taking this action doesn't affect the subject's normal place in the initiative order. This is a single attack and follows the standard rules for attacking. This spell does not allow the subject to make more than one additional attack in a round. If the subject has already made an additional attack, due to a prior casting of this spell, from the haste spell, or from any other source, this spell fails.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mass Snowshoes
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 level)
Targets: one creature/level, no two of which can be more than 30 ft. apart
Duration: 1 hour/level (D)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like [[Snowshoes|Snowshoes Spell]], except as noted above.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Master Air
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF
Range: personal
Targets: you
Duration: 1 round/level
Saving Throw: Spell Resistance:
"""
You sprout a pair of insubstantial feathery or batlike (your choice) wings. You can fly at a speed of 90 feet with good maneuverability (60 feet if you're wearing medium or heavy armor). Using master air requires as much concentration as walking, so you can attack or cast spells normally. You can charge but not run, and you cannot carry aloft more weight than your maximum load, plus any armor you wear. Should the spell duration expire while you are still aloft, the magic fails slowly. You drop 60 feet per round for 1d6 rounds. If you reach the ground in that amount of time, you land safely. If not, you fall the rest of the distance, taking falling damage normally. Since dispelling a spell effectively ends it, you also fall in this way if the master air spell is dispelled.
Source: Spell Compendium
!!Masterwork Weapons
A masterwork weapon is a finely crafted version of a normal weapon. Wielding it provides a +1 enhancement bonus on attack rolls. You can’t add the masterwork quality to a weapon after it is created; it must be crafted as a masterwork weapon (see the [[Craft]] skill). The masterwork quality adds 300 gp to the cost of a normal weapon (or 6 gp to the cost of a single unit of ammunition). Adding the masterwork quality to a double weapon costs twice the normal increase (+600 gp).
Masterwork ammunition is damaged (effectively destroyed) when used. The enhancement bonus of masterwork ammunition does not stack with any enhancement bonus of the projectile weapon firing it.
All magic weapons are automatically considered to be of masterwork quality. The enhancement bonus granted by the masterwork quality doesn’t stack with the enhancement bonus provided by the weapon’s magic.
Even though some types of armor and shields can be used as weapons, you can’t create a masterwork version of such an item that confers an enhancement bonus on attack rolls. Instead, masterwork armor and shields have lessened armor check penalties.
"""
''Medium Armor''
''Cost'' 15 gp; ''Weight'' 25 lbs.
''Armor Bonus'' +4; ''Max Dex Bonus'' +4; ''Armor Check Penalty'' -3
''Arcane Spell Failure Chance'' 20%; ''Speed'' 20 ft./15 ft.
Hide armor is made from the tanned skin of particularly thick-hided beasts, stitched with either multiple overlapping layers of crude leather or exterior pieces of leather stuffed with padding or fur. Damage to the armor is typically repaired by restitching gashes or adding new pieces of hide, giving the most heavily used suits a distinctively patchwork quality.
"""
!!Masterwork Armor
Just as with weapons, you can purchase or craft masterwork versions of armor or shields. Such a well-made item functions like the normal version, except that its armor check penalty is lessened by 1.
The masterwork transformation spell transforms a non-masterwork weapon into a masterwork weapon. Without using magic, you can’t add the masterwork quality to armor or a shield after it is created; it must be crafted as a masterwork item (see the Craft skill).
A masterwork suit of armor or shield costs an extra 150 gp over and above the normal cost for that type of armor or shield.
The masterwork quality of a suit of armor or shield never provides a bonus on attack or damage rolls, even if the armor or shield is used as a weapon.
All magic armors and shields are automatically considered to be of masterwork quality.
You can’t add the masterwork quality to armor or a shield after it is created; it must be crafted as a masterwork item.
Even though some types of armor and shields can be used as weapons, you can’t create a masterwork version of such an item that confers an enhancement bonus on attack rolls. However, you can create masterwork armor spikes and shield spikes, which do confer their enhancement bonus on attack rolls to attacks made with the spikes.
!! Harpoon of the Cold Sea, "Anchor"
Anchor is a [[masterwork|Masterwork]] longspear is about 8 feet in length with bone blade of giant elk shoulderblade, snowy arctic owl feathers just below the blade and leather grips at three places along its length.
Simple Two-Handed Melee
|!Melee | !Cost |!Dmg (S) |!Dmg (M) | !Critical | !Range | !Weight | !Type |!Special |
|Longspear | 5 gp |1d6 |1d8 | x3 | — | 9 lbs. | P |[[brace|Brace]], [[reach|Reach]] |
Weapon Feature(s): [[brace|Brace]], [[reach|Reach]]
''Reach Weapons'': A reach weapon is a melee weapon that allows its wielder to strike at targets that aren’t adjacent to him. Most reach weapons double the wielder’s natural reach, meaning that a typical Small or Medium wielder of such a weapon can attack a creature 10 feet away, but not a creature in an adjacent square. A typical Large character wielding a reach weapon of the appropriate size can attack a creature 15 or 20 feet away, but not adjacent creatures or creatures up to 10 feet away.
{{Masterwork}}
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Masterwork Transformation
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 hour V, S, M (see below)
Range: touch
Targets: one weapon, suit of armor, shield, tool, or skill kit touched
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
You convert a non-masterwork item into its masterwork equivalent. A normal sword becomes a masterwork sword, a suit of leather armor becomes a masterwork suit of leather armor, a set of thieves' tools becomes masterwork thieves' tools, and so on. If the target object has no masterwork equivalent, the spell has no effect. You can affect 50 pieces of ammunition as if they were one weapon. You decide if the object's appearance changes to reflect this improved quality. The material component for the spell is magical reagents worth the cost difference between a normal item and the equivalent masterwork item (typically 300 gp for a weapon, 150 gp for armor, or 50 gp for a tool). If an object has multiple masterwork options (such as a double weapon, or a spiked shield that could be made masterwork as a weapon or armor), you choose one option of the object to affect (though you can cast the spell again to affect another option).
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Meld into Stone
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: personal
Targets: you
Duration: 10 min./level
Saving Throw: Spell Resistance:
"""
Meld into stone enables you to meld your body and possessions into a single block of stone. The stone must be large enough to accommodate your body in all three dimensions. When the casting is complete, you and not more than 100 pounds of nonliving gear merge with the stone. If either condition is violated, the spell fails and is wasted. While in the stone, you remain in contact, however tenuous, with the face of the stone through which you melded. You remain aware of the passage of time and can cast spells on yourself while hiding in the stone. Nothing that goes on outside the stone can be seen, but you can still hear what happens around you. Minor physical damage to the stone does not harm you, but its partial destruction (to the extent that you no longer fit within it) expels you and deals you 5d6 points of damage. The stone's complete destruction expels you and slays you instantly unless you make a DC 18 Fortitude save. Even if you make your save, you still take 5d6 points of damage. Any time before the duration expires, you can step out of the stone through the surface that you entered. If the spell's duration expires or the effect is dispelled before you voluntarily exit the stone, you are violently expelled and take 5d6 points of damage. The following spells harm you if cast upon the stone that you are occupying. Stone to flesh expels you and deals you 5d6 points of damage. Stone shape deals 3d6 points of damage but does not expel you. Transmute rock to mud expels you and then slays you instantly unless you make a DC 18 Fortitude save, in which case you are merely expelled. Finally, passwall expels you without damage.
Source: PFRPG Core
Menace (DC 20): A menacing animal attempts to keep a creature you indicate from moving. It does its best to dissuade the target, but it attacks only if the target attempts to move from its present location or take any significant action (particularly a hostile-seeming action). As soon as the target stops moving, the animal ceases attacking but it continues to menace.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Menacing Tentacles
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (piece of octopus, squid or carrion crawler tentacle)
Range: personal
Targets: you
Duration: 1 round/level
Saving Throw: Spell Resistance:
"""
Two black tentacles sprout from your shoulder blades and arch over your shoulders. The tentacles have 10-foot reach and are animate. Each round as a free action, starting on the turn when you cast the spell, you can direct each tentacle to attack one opponent within reach. The tentacles use your base attack bonus and Strength score, and each deals bludgeoning damage equal to 1d8 points + your Str modifier. The tentacles threaten the area within their reach, and each can make one attack of opportunity per round. The tentacles also grant you a +4 bonus on Climb checks.
Source: Player's Handbook II
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mending
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
transmutation
10 minutes V, S
Range: 10 ft.
Targets: one object of up to 1 lb./level
Duration: instantaneous
Saving Throw: Will negates (harmless, object) Spell Resistance: yes (harmless, object)
"""
This spell repairs damaged objects, restoring 1d4 hit points to the object. If the object has the broken condition, this condition is removed if the object is restored to at least half its original hit points. All of the pieces of an object must be present for this spell to function. Magic items can be repaired by this spell, but you must have a caster level equal to or higher than that of the object. Magic items that are destroyed (at 0 hit points or less) can be repaired with this spell, but this spell does not restore their magic abilities. This spell does not affect creatures (including constructs). This spell has no effect on objects that have been warped or otherwise transmuted, but it can still repair damage done to such items.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Message
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
transmutation
1 standard action V, S, F (a piece of copper wire)
Range: medium (100 ft. + 10 ft./level)
Targets: one creature/level
Duration: 10 min./level
Saving Throw: none Spell Resistance: no
"""
You can whisper messages and receive whispered replies. Those nearby can hear these messages with a DC 25 Perception check. You point your finger at each creature you want to receive the message. When you whisper, the whispered message is audible to all targeted creatures within range. Magical silence, 1 foot of stone, 1 inch of common metal (or a thin sheet of lead), or 3 feet of wood or dirt blocks the spell. The message does not have to travel in a straight line. It can circumvent a barrier if there is an open path between you and the subject, and the path's entire length lies within the spell's range. The creatures that receive the message can whisper a reply that you hear. The spell transmits sound, not meaning; it doesn't transcend language barriers. To speak a message, you must mouth the words and whisper.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mighty Fist Of The Earth
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation) [earth]
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: instantaneous
Saving Throw: none Spell Resistance: yes
"""
You create a fist-sized rock that flies toward one enemy. Make an unarmed strike attack roll against the target as if it were in your threatened area. If the attack is successful, the rock deals bludgeoning damage to the target as if you had hit the target with your unarmed strike. If you have a ki pool, as long as you have at least 1 point in your ki pool, the rock counts as a ki strike. At 4th level, a qinggong monk (Ultimate Magic 51) may select this spell as a ki power costing 1 ki point to activate (if the monk has 0 ki points after activating this ki power, the rock does not count as a ki strike).
Source: Advanced Race Guide
Mind-Affecting: Mindless creatures (those with an Intelligence score of “—”) and undead are immune to mind-affecting effects.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mirage
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
illusion (figment)
10 minutes V, S, M (a pinch of sand and a drop of water)
Range: long (400 ft. + 40 ft./level)
Area: one 40-ft. cube/level (S)
Duration: 2 hours/level (D)
Saving Throw: Will disbelief (see below) Spell Resistance: yes
"""
You create an image of a pool of water, a group of standing stones, a cove, an island, or another simple land formation over a stretch of flat land or water. The image is purely visual, and structures, equipment, and creatures within the area are not hidden or changed in appearance. Anyone interacting with the illusion can attempt to disbelieve it, and a creature trained in Survival can make a special attempt to disbelieve the illusion. The creature must be within 120 feet of the illusion's area and can attempt a Survival check instead of a Will saving throw. If the result is equal to or greater than the spell's save DC, the creature realizes the mirage is an illusion as if it disbelieved the spell.
Source: Ultimate Wilderness
! Mite
|LE Small fey|
|''Init'' +8 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +5|
|!Defense |
|''AC'' 12, touch 12, flat-footed 11 |
|''hp'' 3 (1d6) |
|''Fort'' +0, ''Ref'' +3, ''Will'' +3 |
|''DR'' 2/cold iron |
|''Racial Modifiers'' [[Light Sensitivity]] |
|!Offense |
|''Speed'' 20 ft., climb 20 ft. |
|''Melee'' dagger +0 (1d3-1/19-20) |
|''Ranged'' dart +2 (1d3-1) |
|''Special Attacks'' Hatred |
|!Statistics |
|''Str'' 8, ''Dex'' 13, ''Con'' 11, ''Int'' 8, ''Wis'' 13, ''Cha'' 8 |
|''Base Attack'' +0, ''CMB'' -2, ''CMD'' 9 |
|''Feats'' Point-Blank Shot |
|''Skills'' Climb +7, Handle Animal +0, Perception +5, Ride +2, Sleight of Hand +9, Stealth +13 |
|''Racial Modifiers'' +4 Sleight of Hand, +4 Stealth |
|''Languages'' Undercommon |
|''SQ'' vermin empathy +4 |
|!Special Abilities |
|!''Hatred'' (Ex) |
|Mites receive a +1 bonus on attack rolls against humanoid creatures of the dwarf or gnome subtype due to special training against these hated foes. |
|!''Vermin Empathy'' (Ex) |
|This ability functions as a druid’s wild empathy, save that a mite can only use this ability on vermin. A mite gains a +4 racial bonus on this check. Vermin are normally mindless, but this empathic communication imparts on them a modicum of implanted intelligence, allowing mites to train Medium vermin and use them as mounts. Vermin empathy treats swarms as if they were one creature possessing a single mind—a mite can thus use this ability to influence and direct the actions of swarms with relative ease. |
Descended from even smaller fey, the mites are among the most pitiful and craven dwellers of the dark. Hideously ugly, even goblins have been known to mock mites for their homely appearances, mockery most mites take to heart and nurture for weeks, months, or even years in their tiny homes, until their distress and anger finally overcome their natural cowardice and impel them forth on short-lived bouts of bloody vengeance from the doubtful safety of a spider’s back.
Mites, once closer to the strange realm of the fey, have grown larger and stockier after countless generations spent on the Material Plane. Yet still, their stature places them at the bottom of the pile in the dangerous caverns in which they live. Their traditional enemies are dwarves and gnomes, particularly the svirfneblin of the deep underground caves. The one thing that gives them a significant edge over an enemy in a fight is their natural ability to empathize with normally mindless vermin—mites are particularly fond of spiders, centipedes, and cave fishers, and a mite colony usually has a few of these far more dangerous monsters on hand to defend the group.
Although they have lost the supernatural ability to tinker with magic items, luck, or mechanical objects possessed by their more sinister and dangerous gremlin kin, mites retain the ability to perform minor magical tricks with prestidigitation, and often use these tricks to annoy their enemies. When faced with dangerous foes, a mite uses its doom ability to hex a foe—a mite’s eyes bulge hideously open when it uses this spell-like ability.
A mite is 3 feet tall and weighs 40 pounds.
! Monitor Lizard
|N Medium animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +8|
|!Defense |
|''AC'' 15, touch 12, flat-footed 13 |
|''hp'' 22 (3d8+9) |
|''Fort'' +8, ''Ref'' +5, ''Will'' +2 |
|!Offense |
|''Speed'' 30 ft., swim 30 ft. |
|''Melee'' bite +5 (1d8+4 plus grab and poison) |
|!Statistics |
|''Str'' 17, ''Dex'' 15, ''Con'' 17, ''Int'' 2, ''Wis'' 12, ''Cha'' 6 |
|''Base Attack'' +2, ''CMB'' +5 (+9 grapple), ''CMD'' 17 (21 vs. [[Trip]]) |
|''Feats'' Great Fortitude, Skill Focus (Perception) |
|''Skills'' Climb +7, Perception +8, Stealth +10 (+14 in undergrowth), Swim +11 |
|''Racial Modifiers'' +4 Stealth (+8 in undergrowth) |
|!Special Abilities |
|!''Poison'' (Ex) |
|Bite—injury; save Fort DC 14; onset 1 minute; frequency 1/hour for 6 hours; effect 1d2 Dexterity damage; cure 1 save. The save DC is Constitution-based. |
Monitor lizards are large enough to pose a threat to humans, and in some societies are often mistaken for dragons. Some can reach lengths of 10 feet or more and weights of 350 pounds.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Monkey Fish
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 1 minute/level (D)
Saving Throw: Spell Resistance:
"""
Your hands and feet alter to make you better at climbing and swimming. You gain a 10 foot climb speed and swim speed. This spell has no effect if you are wearing medium or heavy armor or carrying a medium or heavy load.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mud Buddy
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation)
1 standard action V, S, M (1 pint of water)
Range: close (25 ft. + 5 ft./2 levels)
Targets: 5 cubic feet of earth or mud
Duration: 1 hour/level (D) (see text)
Saving Throw: Spell Resistance:
"""
You create a Small minion out of mud, and it obeys your commands. The mud buddy has AC 12, 10 hit points, Strength 5, and a speed of 30 feet. It can perform any tasks an unseen servant can, plus any similar tasks its Strength allows (it's able to lift up to 50 pounds), but instead of walking on water, it gains a swim speed of 30 feet. You can command a mud buddy to move up to 5 feet and trip an opponent (CMB = your caster level + your spellcasting ability score modifier). After the trip attempt is resolved, the spell ends. When the spell ends, the mud buddy reverts to a patch of wet earth.
Source: Monster Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Mudball
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation) [earth]
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Effect: single fist-sized blob of sticky mud
Duration: instantaneous
Saving Throw: Reflex negates; see text Spell Resistance: no
"""
When you cast this spell, you conjure a single ball of sticky mud and launch it at an enemy's face as a ranged touch attack. If the mudball hits, the target is blinded. Each round at the beginning of its turn, a creature blinded by this spell can attempt a Reflex saving throw to shake off the mud, ending the effect. The mudball can also be wiped off by the creature affected by it or by a creature adjacent to the creature affected by it as a standard action.
Source: Advanced Race Guide
!! Mystic Theurge
<$list filter="[tag[Mystic]tag[Feature]sort[title]]"/>
The Nakulutiuns were a reclusive people residing in the [[Nakvaligach]] region of the [[Great Glacier]], the most inhospitable area of that frozen wilderness. They were the smallest (only 5%) of the tribes collectively called the [[Ulutiuns|Ulutiun]].
!! Description
Nakulutiuns were short like all [[Ulutiuns]], having round and flat facial features, but they were thinner. They rarely were taller than five feet (150 cm). Males usually weighed between 130 and 260 pounds (60–120 kg), and females were about 35 pounds (16 kg) lighter. They had short and thick legs with stubby fingers and toes. Their ears and nose were tiny, and they had especially wide teeth.
They had light yellow or brown skin, dark brown eyes, and black hair, but they tended to have hollow eyes.
Nakulutiuns had more fat under their skin than other humans and extra blood vessels in their extremities. Males could not grow facial hair. These adaptations gave them a special resistance to living in the frigid cold weather of their native lands.
These people tended to have greater strength and fortitude than other human races but, with their stubby fingers and shorter legs, lacked the speed and dexterity of other humans.
Nakulutiuns wore clothing made from fox, wolf, and bear skins, and their parkas had rounded hoods.
!! Personality
The Nakulutiuns were the most paranoid and least trusting of the three Ulutiun tribes. Members of one village rarely trusted those of another Nakulutiun village, much less a non-Ulutiun stranger. When they spotted a stranger, they tended to flee. If flight was not an option, they would attack to kill.
A Nakulutiun individual was often sullen and withdrawn. They tended to be soft-spoken.
!! Society
Nakulutiuns were not a populous people; their largest village, [[Kresttet]], had only about 300 persons living in it, and it was by far the largest. Only a few thousand Nakulutiuns existed on the [[Great Glacier]] at all.
Nakulutiuns constructed snowhouses like other tribes of the Glacier, but in moutainous regions where the permafrost was thin, they constructed stone houses called //ceenach//, which were constructed just like snowhouses, except that they had flat roofs instead of domed ones, covered with branches and snow. Other stone structures included stone //quaggi// (feasting houses), //ukujik// (butcher houses), //biknach// (elevated storage houses), and //ugunach// (stairs for praying).
A village was not generally a happy or pleasant place. Life in the harsh [[Nakvaligach]] was miserable and hard. Houses usually lacked building material and clothes tended to be shabby. Besides the constant threat of starvation or death to exposure, white dragons and frost giants frequently raided Nakulutiun villages.
Men and women held the same status in Nakulutiun society. They did not practice arranged marriage (//tupa//).
Nakulutiuns were skilled at astrology and herbalism.
!! [[Language|Ulutiun Language]]
Nakulutiuns spoke their own dialect of the Ulutiun language, but they had no trouble communicating with the other Ulutiun tribes. Most could also communicate with the human groups living outside the Glacier as well.
!! Religion
In stark contrast to their cousins in the south and south east, Nakulutiuns were strongly religious, being devoted to the god [[Ulutiu]]. Nakulutiuns were convinced that [[Ulutiu]] would return someday to rule the [[Great Glacier]] and punish heathens. Beyond this, however, two Nakulutiun tribes rarely agreed on the dogma of [[Ulutiu]].
Nakulutiuns did not try to spread their religion, but they expected to be respected for their faith. They were not opposed to killing one they believed to be an nonredeemable blasphemer.
Much of the teachings of their religion were line with the philosophical tenets of //qukoko// followed by other tribes of the [[Great Glacier]]. However, the Nakulutiuns believed that animals had the same emotions, thoughts, and even morals as people and thus could not be disrespected as fellow "children of Ulutiu". Both humans and animals contained a life essence called //pokulu//, which was said to merge with [[Ulutiu]] upon death. When death occurred, remains were properly treated—in ceremonies called //yupokulu// (for humans) or //wypokulu// (for animals)—to ensure that the //pokulu// reached [[Ulutiu]].
Each citizen of a Nakulutiun village was expected to pray to [[Ulutiu]] three times daily. Praying was always done with the eyes covered by the hands during a time of silence facing the sky.
Two to five percent of a typical Nakulutiun village were priests of [[Ulutiu]]. Clerics of any other faith were simply not tolerated.
Arcane spellcasters were considered blasphemous to Nakulutiuns. Thus, they had no [[anagakok|Anagakok]].
!! Government
Each village was controlled by a religious leader called a //urit//, who ruled with absolute authority. Below the urit in rank were his or her two or three //yaaurit//. A //urit// was always a priest of [[Ulutiu]]. When he or she reached the age of 50 years, the //urit// chose a successor, usually from among the //yaaurit//. If a urit died prematurely, the eldest //yaaurit// would become the next //urit//. //Urit// had additional powers as a blessing from [[Ulutiu]], which included total immunity to cold-based spells and effects and the ability to inflict damage by touch.
The Nakulutiuns believed that the edicts of an //urit// were the expressed desires of [[Ulutiu]] for their village, no matter how harsh. Usually, these edicts tended to match the ways and customs of the other tribes on the [[Glacier|Great Glacier]].
In addition, each village had its own set of two or three special edicts, called //kaiurit//, which changed every year. On the first day of spring, the //urit// would call the whole village together to announce that year's //kaiurit// during a ceremony called the //iurit//. The //urit// would spend every evening for a month prior to the //iurit// seeking [[Ulutiu's|Ulutiu]] will in prayer and meditation for what the next year's //kaiurit// were to be. While these rules often seemed arbitrary, they were considered holy and unchangeable to the Nakulutiuns.
Like the [[Angulutiuns|Angulutiun]], the Nakulutiuns maintained a strict social hierarchy, as follows:
"""
The //urit//
The ya//a//urit
Married or widowed adults
Unmarried adults
Children
//ukeu//
"""
All who committed any crime, big or small, within a Nakulutiun village were subjected to //ykulutik//, a type of ceremony in which [[Ulutiu]] was supposed to determine guilt or innocence. Like //kaiurit//, //ykulutik// varied from village to village, but they often involved situations in which the accused had to survive some dangerous ordeal to be considered innocent.
!! Economy
A Nakulutiun usually only traded within his or her own village. Nakulutiuns did not follow the practices of //koatulit// nor did they visit //sukkiruchit// trade fairs.
!! Diet
Nakulutiuns survived by hunting. Food was in short supply, because neither caribou nor seals lived in the region. They hunted birds, fish, deer, and polar bears. Their primary hunting weapons were bows and //garnok// slings. For their bows, they used a mix of barbed and blunt-tipped arrows.
!! Transportation
Because the terrain was rough and rocky in Nakvaligach, caribou sleds were not useful, but smaller dog sleds and //kupuk// sleds were used. Villages near the Uppuk River had kayaks. However, generally only a larger village would have any of these vehicles. Most Nakulutiuns—if they wanted to go anywhere at all—simply walked.
!!Combat
Because of the harsh conditions of where they lived, even war was considered a luxury; thus, if violence ever erupted between Nakulutiun villages at all, it was kept brief.
The Nakulutiuns greatest enemies were perhaps the yeti.
!! History
All [[Ulutiuns|Ulutiun]] were descended from migrants from [[Kara-Tur]] who came west over the polar ice caps. Their ancestors first settled in [[Faerûn]] in [[Sossal]]. From there, they explored further west. In −1648 DR, a group of them became severely lost after having narrowly escaped death from an attack by a tirichik, one of the monsters native to the [[Great Glacier]]. These lost hunters eventually came to the shores of the [[Lugalpgotak Sea]] and settled there.
By −1362 DR, these early [[Ulutiuns|Ulutiun]] had abandoned their gods and multiplied. The people spread out over the the [[Alpuk]] region and eventually discovered the [[Glacier of Ulutiu|Great Glacier]] and its sacred writings. Some of the [[Ulutiuns|Ulutiun]] dedicated themselves to the worship of this new god [[Ulutiu]] and moved further north into the [[Nakvaligach]] region and became the Nakulutiuns. Those who did not accept [[Ulutiu]] and remained in [[Alpuk]] became the [[Iulutiuns|Iulutiun]].
!!Notable Nakulutiuns
"""
''Mistukqu'', a former priest of [[Ulutiu]] who served as a sort of veterinarian for [[Angulutiun]] villages
''Tukurshuk'', an exceptionally tall and violent //urit// who believed himself to be the son of [[Ulutiu]]
"""
Nakvaligach, also called the "Northern Barrens", was the most dangerous region of the [[Great Glacier]].
!! Geography
Nakvaligach, the smallest of the three regions of the [[Glacier|Great Glacier]], was located north of [[Alpuk]], across the [[Uppuk River]]. It was bordered on the west and east by the [[Tuutsaas Chain]] and the [[Keryjek Ridge]] respectively.
Unlike the two "Basins", [[Alpuk]] and [[Angalpuk]], Nakvaligach was covered with mountainous terrain and treacherous crevasses. This played a role in the architecture of the region, where Nakvaligach residents made use of stones in their constructions. It also affected the ease of transportation; sleds were not of great use here.
The ice depth was usually between 200 and 500 feet (60–150 m), though it thinned to as little as five to ten feet (one and a half to three meters) in central areas. In the northern mountains, the ice layer was nearly a mile (one and a half kilometers) thick. There was very little potable water in the region.
!!Weather
Because of the higher altitudes, stronger winds, and distance from the larger seas, the temperatures in Nakvaligach were more severe than anywhere else on the [[Great Glacier]], dropping even as low as 150 °F (100 °C) below zero in the northernmost mountains. This was so bitter cold that it was said that winds here could freeze a person solid mid-step. Elsewhere, average temperatures ranged from −50 °F (−46 °C) to 15 °F (−9 °C) in the spring (from Mirtul to Kythorn) with a daytime average of −5 °F (−21 °C) and a nighttime average of −35 °F (−37 °C). In the month of Flamerule, temperatures might range from −20 °F (−29 °C) to 30 °F (−1 °C) with a daytime average of 10 °F (−12 °C) and a nighttime average of −10 °F (−23 °C). During autumn, (the months of Eleasis through Uktar,) they ranged from −55 °F (−48 °C) to 0 °F (−18 °C). The daytime average was −10 °F (−23 °C), and the nighttime average −40 °F (−40 °C). Temperatures fell as low as −95 °F (−71 °C) in the long winter (from Nightal to Tarsakh[7]) and rarely rose any higher than −30 °F (−34 °C). The average temperatures for winter were −55 °F (−48 °C) during the day and −75 °F (−59 °C) at night. Strong winds could make them temperatures seem even colder.
Fewer than five to eight inches (thirteen to twenty centimeters) of precipitation fell in the region per year.
!! Flora & Fauna
Deer, polar bears, and a variety of fish and birds were found in Nakvaligach. Unlike other regions of the [[Great Glacier]], seals did not live here, and the caribou populations were lower, rarely existing in herds of more than one hundred animals.
The //mukteff//, a gold-furred sled dog, was native to Nakvaligach.
Tirichik laired in the most desolate areas of Nakvaligach, deep within its crevasses.
Short birch, evergreen, or willow trees somehow managed to survive in isolated regions of Nakvaligach, rarely growing more than ten feet (three meters) tall.
Flame heather was a strange plant unique to Nakvaligach. This yellow and red plant was known to burn very slowly, which made it useful for house fire pits.
!! History
In 1339 DR, Sharra Frohm the great-great-great-granddaughter of the famous explorer Palus Frohm set out to explore Nakvaligach and complete a second volume of his work Blood and Ice.
!! Notable Locations
"""
''Ahtitlak''
This small village had a strange bond with remorhaz, having learned even how to ride them.
''Igotak Sea ''
This was the largest body of water in Nakvaligach, but it was frozen solid the whole year.
''Kresttet''
This village was the largest human settlement in Nakvaligach.
''Olyniak Crevasse ''
This deep chasm was rumored to have a network of tunnels at the bottom that led to Ulutiu's resting place.
''The Shakkak Pit ''
This deep chasm was filled with fairy ice and was a burial ground for white dragons.
"""
!! Inhabitants
Only about five percent of the Ulutiun humans living on the [[Great Glacier]] lived in Nakvaligach, because of its hostile environment. These people were the Nakulutiuns, and their total population was estimated between 2,500 and 3,750 souls in 1359 DR. The largest (by far) Nakulutiun settlement was [[Kresttet]], which only had a population of 300.
Frost giants and white dragons lived in the mountains, and both groups kept the Nakulutiuns living in fear with periodic raiding.
Small groupings (usually fewer than seven individuals) of yeti also roamed the mountains here. Some of them were subservient to the white dragons.
Most creatures possess one or more natural attacks (attacks made without a weapon). These attacks fall into one of two categories, primary and secondary attacks. Primary attacks are made using the creature’s full base attack bonus and add the creature’s full Strength bonus on damage rolls. Secondary attacks are made using the creature’s base attack bonus –5 and add only 1/2 the creature’s Strength bonus on damage rolls. If a creature has only one natural attack, it is always made using the creature’s full base attack bonus and adds 1-1/2 times the creature’s Strength bonus on damage rolls. This increase does not apply if the creature has multiple attacks but only takes one. If a creature has only one type of attack, but has multiple attacks per round, that attack is treated as a primary attack, regardless of its type. You do not receive additional natural attacks for a high base attack bonus. Instead, you receive additional attack rolls for multiple limb and body parts capable of making the attack (as noted by the race or ability that grants the attacks).
!! Natural Attacks by Size
|!Natural Attack | !Base Damage by Size* |<|<|<|<|<|<|<|<| !Damage Type |! Attack type |
|~|!Fine | !Dim. | !Tiny | !Small | !Medium | !Large | !Huge | !Garg. | !Col. |~|~|
|Bite | 1 | 1d2 | 1d3 | 1d4 | 1d6 | 1d8 | 2d6 | 2d8 | 4d6 | B, P, and S | Primary |
|Claw | – | 1 | 1d2 | 1d3 | 1d4 | 1d6 | 1d8 | 2d6 | 2d8 | B and S | Primary |
|Gore | 1 | 1d2 | 1d3 | 1d4 | 1d6 | 1d8 | 2d6 | 2d8 | 4d6 | P | Primary |
|Hoof, Tentacle, Wing | – | 1 | 1d2 | 1d3 | 1d4 | 1d6 | 1d8 | 2d6 | 2d8 | B | Secondary |
|Pincers, Tail Slap | 1 | 1d2 | 1d3 | 1d4 | 1d6 | 1d8 | 2d6 | 2d8 | 4d6 | B | Secondary |
|Slam | – | 1 | 1d2 | 1d3 | 1d4 | 1d6 | 1d8 | 2d6 | 2d8 | B | Primary |
|Sting | – | 1 | 1d2 | 1d3 | 1d4 | 1d6 | 1d8 | 2d6 | 2d8 | P | Primary |
|Talons | – | 1 | 1d2 | 1d3 | 1d4 | 1d6 | 1d8 | 2d6 | 2d8 | S | Primary |
|Other | – | 1 | 1d2 | 1d3 | 1d4 | 1d6 | 1d8 | 2d6 | 2d8 | B, P, or S | Secondary |
Some creatures treat one or more of their attacks differently, such as Dragons, which always receive 1-1/2 times their Strength bonus on damage rolls with their bite attack. These exceptions are noted in the creature’s description.
Creatures with natural attacks and attacks made with weapons can use both as part of a full attack action (although often a creature must forgo one natural attack for each weapon clutched in that limb, be it a claw, tentacle, or slam). Such creatures attack with their weapons normally but treat all of their available natural attacks as secondary attacks during that attack, regardless of the attack’s original type.
Some creatures do not have natural attacks. These creatures can make unarmed strikes just like humans do. See Table: Natural Attacks by Size for typical damage values for natural attacks by creature size.
Format: bite +5 (1d6+1), 2 claws +5 (1d4+2), 4 tentacles +0 (1d4+1); Location: Melee and Ranged.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Natural Rhythm
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a handful of pebbles dropped one by one onto the ground)
Range: touch
Targets: creature touched
Duration: 1 round/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You enhance a creature's ability to harm an opponent based on the number of times it has already injured that opponent with a natural attack. Each time the creature successfully strikes an opponent with a natural attack, the subject gains a cumulative +1 bonus on damage rolls made against that opponent when making natural attacks (maximum +5 bonus). If an attack misses, the bonus to damage for all attacks resets to +0.
Source: APG
!! [[Nature Bond]]
At 1st level, a druid forms a bond with nature. This bond can take one of two forms: one of the cleric domains or form a close bond with an animal companion.
A druid may begin play with any of the animals listed in Animal Choices. This animal is a loyal companion that accompanies the druid on her adventures. Unlike normal animals of its kind, an animal companion’s Hit Dice, abilities, skills, and feats advance as the druid advances in level. If a character receives an animal companion from more than one source, her effective druid levels stack for the purposes of determining the statistics and abilities of the companion. Most animal companions increase in size when their druid reaches 4th or 7th level, depending on the companion. If a druid releases her companion from service, she may gain a new one by performing a ceremony requiring 24 uninterrupted hours of prayer in the environment where the new companion typically lives. This ceremony can also replace an animal companion that has perished.
"""
''Polar Bear (Grizzly Bear)''
The infamous grizzly bear is a lumbering and quite impressive companion, particularly when it rises up on its hind feet to loom large. Grizzly bears strike fear into the hearts of most who encounter them.
''Starting Statistics''
''Size'' Medium; ''Speed'' 40 ft., ''Swim'' 10 ft.; ''AC'' +1 natural armor;
''Attack'' bite (1d6), 2 claws (1d4);
''Ability Scores'' STR 17, DEX 13, CON 15, INT 2, WIS 13, CHA 6;
''Special Attacks'' none;
''Special Qualities'' [[low-light vision|Low-Light Vision]], [[scent|Scent]]
''7th-Level Advancement'': ''Size'' Large; ''AC'' +4 natural armor; ''Attack'' bite (1d8), 2 claws (1d6); Ability Scores Str +6, Dex –2, Con +4; ''Special Attacks'' [[grab|Grab]].
"""
|!Class Level|! HD|!BAB|!Fort|! Ref|! Will|! Skills|! Feats|! Natural Armor Bonus|! STR/DEX Bonus|! Bonus Tricks|!Special|
|1st | 2 | +1 | +3 | +3 | +0 | 2 | 1 | +0 | +0 | 1 | [[Link]], [[Share Spells]]|
|2nd| 3 | +2 | +3 | +3 | +1 | 3 | 2 | +0 | +0 | 1 | |
|3rd | 3 | +2 | +3 | +3 | +1 | 3 | 2 | +2 | +1 | 2 | [[Evasion]]|
|4th | 4 | +3 | +4 | +4 | +1 | 4 | 2 | +2 | +1 | 2 |Ability Score Increase|
|5th | 5 | +3 | +4 | +4 | +1 | 5 | 3 | +2 | +1 | 2 ||
|6th | 6 | +4 | +5 | +5 | +2 | 6 | 3 | +4 | +2 | 3 |[[Devotion]]|
"""
''Skills''
This lists the animal’s total skill ranks. Animal companions can assign skill ranks to any skill listed under Animal Skills. If an animal companion increases its Intelligence to 10 or higher, it gains bonus skill ranks as normal. Animal companions with an Intelligence of 3 or higher can purchase ranks in any skill. An animal companion cannot have more ranks in a skill than it has Hit Dice.
Animal companions can have ranks in any of the following skills:
Acrobatics* (DEX), Climb* (STR), Escape Artist (DEX), Fly* (DEX), Intimidate (CHA), Perception* (WIS), Stealth* (DEX), Survival (WIS), and Swim* (STR).
All of the skills marked with an (*) are class skills for animal companions. Animal companions with an Intelligence of 3 or higher can put ranks into any skill.
''Feats''
This is the total number of feats possessed by an animal companion. Animal companions should select their feats from those listed under Animal Feats. Animal companions can select other feats, although they are unable to utilize some feats (such as Martial Weapon Proficiency). Note that animal companions cannot select a feat with a requirement of base attack bonus +1 until they gain their second feat at 3 Hit Dice.
Animal companions can select from the following feats:
Acrobatic, Agile Maneuvers, Armor Proficiency (light, medium, and heavy), Athletic, Blind-Fight, Combat Reflexes, Diehard, Dodge, Endurance, Great Fortitude, Improved Bull Rush, Improved Initiative, Improved Natural Armor, Improved Natural Attack, Improved Overrun, Intimidating Prowess, Iron Will, Lightning Reflexes, Mobility, Power Attack, Run, Skill Focus, Spring Attack, Stealthy, Toughness, Weapon Finesse, and Weapon Focus.
Animal companions with an Intelligence of 3 or higher can select any feat they are physically capable of using. GMs might expand this list to include feats from other sources.
''Bonus Tricks''
The value given in this column is the total number of “bonus” tricks that the animal knows in addition to any that the druid might choose to teach it (see the Handle Animal skill). These bonus tricks don’t require any training time or Handle Animal checks, and they don’t count against the normal limit of tricks known by the animal. The druid selects these bonus tricks, and once selected, they can’t be changed.
''Link'' (Ex)
A druid can handle her animal companion as a free action, or push it as a move action, even if she doesn’t have any ranks in the Handle Animal skill. The druid gains a +4 circumstance bonus on all wild empathy checks and Handle Animal checks made regarding an animal companion.
''Share Spells'' (Ex)
The druid may cast a spell with a target of “You” on her animal companion (as a touch range spell) instead of on herself. A druid may cast spells on her animal companion even if the spells normally do not affect creatures of the companion’s type (animal). Spells cast in this way must come from a class that grants an animal companion. This ability does not allow the animal to share abilities that are not spells, even if they function like spells.
''Evasion'' (Ex)
If an animal companion is subjected to an attack that normally allows a Reflex saving throw for half damage, it takes no damage if it makes a successful saving throw.
''Devotion''
An animal companion gains a +4 morale bonus on Will saves against enchantment spells and effects.
''Magic Items''
Animal Companions only have specific magic item slots avalable to them. Their magic item slots are based on their general body form.
Armor, belt (saddle), chest, eyes, head, headband, neck, shoulders, wrist
"""
!! [[Nature Sense]]
A druid gains a +2 bonus on Knowledge (nature) and Survival checks.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Nature's Balance
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: touch
Targets: creature touched
Duration: 10 min./level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
You take a -4 penalty to your choice of Strength, Dexterity, or Constitution, and your subject gains an equivalent bonus to the same ability score. You get no saving throw to avoid the loss, but your subject can attempt a Fortitude save to avoid the gain, if desired.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Nature's Exile
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: touch
Targets: creature touched
Duration: permanent
Saving Throw: Will negates Spell Resistance: yes
"""
This spell curses the creature touched, making it inimical to the natural world. All animals have an initial attitude of hostile toward the target. Familiars, being magical beasts, are not affected by this spell, but animal companions are. If you have an animal companion, it does not become hostile, but as long as you remain cursed, your animal companion takes a -2 penalty on all attack rolls, skill checks, and saving throws. The target also takes a -10 penalty on Survival skill checks as the weather and environment themselves seem to conspire to cause trouble. Nature's exile can be removed with break enchantment, limited wish, miracle, remove curse, or wish.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Nature's Favor
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 swift action V, S, DF
Range: touch
Targets: one animal touched
Duration: 1 min.
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You grant the subject animal a +1 luck bonus on attack rolls and damage rolls for every three caster levels you possess (maximum +5).
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Nature's Paths
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, S, M/DF (a smooth stone)
Range: touch
Targets: one creature
Duration: 8 hours (D)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The target instinctively knows the shortest, easiest, and fastest way through the wilderness. For the purpose of determining overland speed, the target treats any trackless terrain as though there were a trail or road, and any terrain with a road or trail as though there were a highway (Pathfinder RPG Core Rulebook 171-172). Up to one creature per caster level traveling with the target can also benefit from the effect. The spell functions only outdoors and does not function in magically altered terrain.
Source: Villain Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Nature's Purity
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Effect: one or more rays
Duration: instantaneous
Saving Throw: none Spell Resistance: yes
"""
A shimmering green beam of light springs forth from your outstretched hand. You can direct this ray at any target in range. If you hit the target, the ray deals 1d6 points of force damage. Against undead and constructs, the ray deals 2d8 points of force damage. Against aberrations, the ray deals 5d6 points of force damage and threatens a critical hit on a roll of 19-20. An aberration slain by this damage is immediately transformed into pungent-smelling inert plant matter. You can generate one additional ray for every four levels above 5th (to a maximum of four rays at 17th level). The rays can be fired at the same or different targets, but all rays must be aimed at targets within 30 feet of each other and fired simultaneously.
Source: Lords of Madness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Nature's Rampart
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
10 minutes V, S, DF (quartz gem engraved with tiny castle worth at least 100 gp)
Range: medium (100 ft. + 10 ft./level)
Area: Structure up to 40 ft. square
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
You shape a natural setting into a formidable defensive position. Usually this spell is used to prepare an open outdoor area such as a hillside or a forest, but a large natural cavern could be shaped into a divine rampart. Artificial structures or features are not affected, although nature's rampart could be positioned to fill a gap between two buildings or barricade an unpaved road. The effect of the spell depends on the terrain:
Open Outdoor Site: A rampart or dike of earth 5 feet high and 5 feet thick at its base rises immediately behind a shallow ditch 5 feet wide and 5 feet deep along the perimeter of the site. Creatures behind the dike receive cover. Attackers approaching on foot must scramble down into the ditch and then climbing 10 feet to reach the top of the dike (Climb DC 10).
Rough Outdoor Site or Cavern: Loose stones and boulders, dead wood, and patches of dense briars are arranged to form a defensible wall 5 feet high and 2 feet thick at the base around the perimeter of the site. Creatures behind the wall receive cover.
Marshy or Low-Lying Site: In areas such as marsh, bog, swamp, or tundra, nature's rampart cannot raise a wall, but instead creates a water-filled ditch 10 feet wide and 5 feet deep. Creatures forced to wade the ditch are reduced to 1/4 their normal speed (minimum 5 feet) and cannot charge or run.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Nauseating Dart
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation) [poison]
1 standard action S, DF
Range: close (25 ft. + 5 ft./2 levels)
Effect: one poisonous stinger
Duration: instantaneous
Saving Throw: Fortitude partial (see text) Spell Resistance: no
"""
You spit a poisonous stinger around the size of a quill at a creature within range, as though you had fired a dart from a blowgun. You must succeed at a ranged attack to hit your target. The stinger deals 1d2 points of piercing damage and poisons the target, causing it to become nauseated for 1 round unless it succeeds at a Fortitude save.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Nauseating Trail
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (creation) [poison]
1 standard action V, S, M (a rotten egg or cabbage leaves)
Range: medium (100 ft. + 10 ft./level)
Targets: one willing creature
Duration: 1 round/level
Saving Throw: none and Fortitude negates (see text) Spell Resistance: no
"""
The target exudes stinking vapors that fill its space. The vapors do not obscure sight, but it nauseates creatures as stinking cloud. The target is immune to these vapors. These vapors persist as the creature moves, filling every square it passes through until it has filled a number of squares equal to 4 x your caster level-if you move through more squares than that, squares in excess of that number at not filled with the vapors. Each creature that enters or ends its turn in the area filled with these vapors must succeed at a Fortitude save or become nauseated for as long as it remains in the square and for 1d4+1 rounds after it leaves.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Negate Aroma
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M/DF (a pinch of alum)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature or object/level touched
Duration: 1 hour/level (D)
Saving Throw: Fortitude negates Spell Resistance: yes
"""
With a gesture, this spell allows you to dismiss even the foulest or most distinctive scents. When cast, the targeted creatures or objects lose all natural and unnatural odors. A creature under the effect of negate aroma cannot be tracked, located, or pinpointed by the scent special quality. In addition, this spell prevents the target creature from using the stench special ability and similar odor-based abilities (such as those possessed by troglodytes). Negate aroma does not prevent the target from acquiring outside smells or odors. Dowsing the creature with a pungent substance effectively negates the benefits of the spell until the substance is neutralized or washed away.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Nereid's Grace
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration
1 standard action V, S
Range: personal
Targets: you
Duration: 1 round/level
Saving Throw: Spell Resistance:
"""
You radiate the unearthly grace of a nereid. If you're not wearing armor, you gain a deflection bonus to your AC and CMD equal to your Charisma bonus (maximum +3). The maximum increases by 1 for every 6 levels you possess (maximum +6 at 18th level).
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Neutral Buoyancy
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, M (a bag of air), DF
Range: touch
Targets: creature touched
Duration: 10 minutes/level
Saving Throw: Will negates Spell Resistance: yes
"""
The target's buoyancy becomes and stays neutral, regardless of how dense the target and its gear are. Among other effects, the target neither sinks nor rises when it doesn't attempt a Swim check, making it easier to stay put while performing demanding actions or when helpless or disabled, and the target can swim up and down with equal ease.
Source: Aquatic Adventures
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Neutralize Poison
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (healing)
1 standard action V, S, M/DF (charcoal)
Range: touch
Targets: creature or object of up to 1 cu. ft./level touched
Duration: instantaneous or 10 min./level; see text
Saving Throw: Will negates (harmless, object) Spell Resistance: yes (harmless, object)
"""
You detoxify any sort of venom in the creature or object touched. If the target is a creature, you must make a caster level check (1d20 + caster level) against the DC of each poison affecting the target. Success means that the poison is neutralized. A cured creature suffers no additional effects from the poison, and any temporary effects are ended, but the spell does not reverse instantaneous effects, such as hit point damage, temporary ability damage, or effects that don't go away on their own. This spell can instead neutralize the poison in a poisonous creature or object for 10 minutes per level, at the caster's option. If cast on a creature, the creature receives a Will save to negate the effect.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Obscure Poison
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration
1 standard action S, M (herbs used in antitoxins worth 10 gp)
Range: touch
Targets: one dose of poison or one venomous creature touched
Duration: 1 hour/level
Saving Throw: none Spell Resistance: no
"""
You make the touched poison difficult to detect or identify. Detect poison and similar effects detect an obscured poison only with a successful caster level check against a DC equal to 15 + your caster level (rolled secretly by the GM). Even if the poison is detected, the DC of Craft (alchemy) or Wisdom checks to identify the poison is increased by 10. If cast upon a venomous creature, obscure poison disguises all of the creature's natural poisons in the same way.
Source: Ultimate Intrigue
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Obscuring Mist
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation)
1 standard action V, S
Range: 20 ft.
Effect: cloud spreads in 20-ft. radius from you, 20 ft. high
Duration: 1 min./level
Saving Throw: none Spell Resistance: no
"""
A misty vapor arises around you. It is stationary. The vapor obscures all sight, including darkvision, beyond 5 feet. A creature 5 feet away has concealment (attacks have a 20% miss chance). Creatures farther away have total concealment (50% miss chance, and the attacker cannot use sight to locate the target). A moderate wind (11+ mph), such as from a gust of wind spell, disperses the fog in 4 rounds. A strong wind (21+ mph) disperses the fog in 1 round. A fireball, flame strike, or similar spell burns away the fog in the explosive or fiery spell's area. A wall of fire burns away the fog in the area into which it deals damage. This spell does not function underwater.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Obscuring Snow
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [air, cold]
1 standard action V, S
Range: 30 ft.
Effect: cloud spreads in 30-ft. radius, 30 ft. high from you
Duration: 1 hour/level
Saving Throw: none Spell Resistance: no
"""
A swirling snow vapor arises around you, and follows you from that point on. The snow obscures all sight, including darkvision, beyond 5 feet. A creature 5 feet away has concealment (attacks have a 20% miss chance). Creatures farther away have total concealment (50% miss chance, and the attacker cannot use sight to locate the target). A strong wind (21+ mph) disperses the snow in 4 rounds. A very strong wind (31+ mph) disperses the snow in 1 round. A fireball, flame strike, or similar spell burns away the snow in the explosive or fiery spell's area. A wall of fire burns away the snow in the area into which it deals damage. This spell does not function underwater. Creatures with snowsight are immune to the effects of this spell.
Source: Frostburn
! Octopus
|N Small animal (aquatic) |
|''Init'' +2 ''Senses'' [[Low-Light Vision]] ''Perception'' +1|
|!Defense |
|''AC'' 15, touch 14, flat-footed 12 |
|''hp'' 13 (2d8+4) |
|''Fort'' +5, ''Ref'' +6, ''Will'' +1 |
|!Offense |
|''Speed'' 20 ft., swim 30 ft., jet 200 ft. |
|''Melee'' bite +5 (1d3+1 plus poison), tentacles +3 (grab) |
|!Statistics |
|''Str'' 12, ''Dex'' 17, ''Con'' 14, ''Int'' 2, ''Wis'' 13, ''Cha'' 3 |
|''Base Attack'' +1, ''CMB'' +3 (+7 grapple), ''CMD'' 14 (can't be [[Tripped|Trip]]) |
|''Feats'' MultiattackB, Weapon Finesse |
|''Skills'' Escape Artist +13, Stealth +20, Swim +9 |
|''Racial Modifiers'' +8 Stealth, +10 Escape Artist |
|!Special Abilities |
|!''Ink Cloud'' (Ex) |
|An octopus can emit a 10-foot-radius sphere of ink once per minute as a free action. The ink provides total concealment in water, and persists for 1 minute. |
|!''Jet'' (Ex) |
|An octopus can jet backward once per round as a full-round action, at a speed of 200 feet. It must move in a straight line while jetting, and does not provoke attacks of opportunity when it does so. |
|!''Poison'' (Ex) |
|Bite—injury; save Fort DC 13; frequency 1/round for 6 rounds; effect 1 Str; cure 1 save. |
The octopus is a cunning animal capable of using complex tactics to get food.
! [[Base Statistics]]
!! Ulrik Björnson of the Three Eagles Cross Tribe
@@.borderless
| !<$calc>{{CharacterData##Druid}}+{{CharacterData##Sorcerer}}</$calc> |!Level |<|
| {{CharacterData##Druid}} |Druid|Arctic Druid|
| {{CharacterData##Sorcerer}} |Sorcerer|Cold Elemental Bloodline|
| {{CharacterData##Mystic}} |Mystic Theurge|Prestige|
@@
[[XP|Leveling]]: {{CharacterData##XP}} out of {{CharacterData##Next Level}}
|!Race |Human, Ulutiun |<|!Size |Medium |!Homeland and Background |<|<|[[Great Glacier]], Icewalker (Druid)|<|<|<|<|
|!Age | 23 |!Hair |Graying (black with white) |<|!Eyes |Pale |!Gender |Male |!Height | 5'8" |!Weight | 155 |
|!Alignment |Neutral |!Diety |[[Ulutiu]] (LN) |!Languages |Ulutiun, Common, Druidic |<|<|<|<|<|<|<|
!!! Abilities
|!Ability|!Score|!Mod|!Misc|!Temp|! |!Bonus Spells per Day|<|<|<|<|<|<|<|<|
|~|~|~|~|~|~|!1^^st^^|!2^^nd^^|!3^^rd^^|!4^^th^^|!5^^th^^|!6^^th^^|!7^^th^^|!8^^th^^|!9^^th^^|
|!STR|15|+<$calc>floor(({{CharacterData##STR}}-10)/2)</$calc>||||Light Load: 0-66|<|<|Medium Load: 67-133|<|<|Heavy Load: 134-200|<|<|
|!DEX|13|+<$calc>floor(({{CharacterData##DEX}}-10)/2)</$calc>|||||||||||||
|!CON|15|+<$calc>floor(({{CharacterData##CON}}-10)/2)</$calc>|||||||||||||
|!INT|11|+<$calc>floor(({{CharacterData##INT}}-10)/2)</$calc>|||||||||||||
|!WIS|20|+<$calc>floor(({{CharacterData##WIS}}-10)/2)</$calc>|||| +2 | +1 | +1 | +1 | +1 |||||
|!CHA|18|+<$calc>floor(({{CharacterData##CHA}}-10)/2)</$calc>|||| +1 | +1 | +1 | +1 ||||||
!!! Saves
|!Save|!Mod|!Base|!Ability|!Misc|!Temp|
|!Fort|+<$calc>floor( {{CharacterData##Druid}}/2+{{CharacterData##Sorcerer}}/3+{{CharacterData##Mystic}}/3+2)+floor(({{CharacterData##CON}}-10)/2)</$calc>|+<$calc>floor( {{CharacterData##Druid}}/2+{{CharacterData##Sorcerer}}/3+{{CharacterData##Mystic}}/3+2)</$calc>|+<$calc>floor(({{CharacterData##CON}}-10)/2)</$calc>|+0||
|!Refl|+<$calc>floor( {{CharacterData##Druid}}/3+{{CharacterData##Sorcerer}}/3+{{CharacterData##Mystic}}/3)+floor(({{CharacterData##DEX}}-10)/2)</$calc>|+<$calc>floor( {{CharacterData##Druid}}/3+{{CharacterData##Sorcerer}}/3+{{CharacterData##Mystic}}/3)</$calc>|+<$calc>floor(({{CharacterData##DEX}}-10)/2)</$calc>|+0||
|!Will|+<$calc>floor( {{CharacterData##Druid}}/2+{{CharacterData##Sorcerer}}/2+{{CharacterData##Mystic}}/2+2)+floor(({{CharacterData##WIS}}-10)/2)</$calc>|+<$calc>floor( {{CharacterData##Druid}}/2+{{CharacterData##Sorcerer}}/2+{{CharacterData##Mystic}}/2+2)</$calc>|+<$calc>floor(({{CharacterData##WIS}}-10)/2)</$calc>|+0||
! [[Skills]]
|>| !Skills |!Ability|!|!Total|!Rank|!Mod|!Class|!ACP|!Misc|!Notes |
|<$checkbox tiddler="ClassSkillsData" index="Acrobatics" checked="1" unchecked="" default=""></$checkbox>|[[Acrobatics]]|DEX||+5|1|+1|+3|+0|+0|[[No Penalty for ice/snow|Icewalking]]|
|<$checkbox tiddler="ClassSkillsData" index="Appraise" checked="1" unchecked="" default=""></$checkbox>|[[Appraise]]|INT||+0||+0|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Bluff" checked="1" unchecked="" default=""></$checkbox>|[[Bluff]]|CHA||+8|1|+4|+3|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Climb" checked="1" unchecked="" default=""></$checkbox>|[[Climb]]|STR||+6|1|+2|+3|+0|+0|[[No Penalty for ice/snow|Icewalking]]|
|<$checkbox tiddler="ClassSkillsData" index="Craft" checked="1" unchecked="" default=""></$checkbox>|[[Craft (Primitive)|Craft]]|INT||+4|1|+0|+3|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Diplomacy" checked="1" unchecked="" default=""></$checkbox>*|[[Diplomacy]]|CHA||+4||+4|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Disable Device" checked="1" unchecked="" default=""></$checkbox>|[[Disable Device]]|INT||+0||+0|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Disguise" checked="1" unchecked="" default=""></$checkbox>|[[Disguise]]|CHA||+4||+4|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Escape Artist" checked="1" unchecked="" default=""></$checkbox>|[[Escape Artist]]|DEX||+1||+1|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Fly" checked="1" unchecked="" default=""></$checkbox>*|[[Fly]]|DEX||+1||+1|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Handle Animal" checked="1" unchecked="" default=""></$checkbox>|[[Handle Animal]]|CHA||+11|4|+4|+3|+0|+0|[[+4 Knut|Handle Animal]]|
|<$checkbox tiddler="ClassSkillsData" index="Heal" checked="1" unchecked="" default=""></$checkbox>|[[Heal]]|WIS||+9|1|+5|+3|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Intimidate" checked="1" unchecked="" default=""></$checkbox>*|[[Intimidate]]|CHA||+4||+4|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Know Arcane" checked="1" unchecked="" default=""></$checkbox>*|[[Know Arcane]]|INT||+6|3|+0|+3|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Know Dungeoneering" checked="1" unchecked="" default=""></$checkbox>*|[[Know Dungeoneering]]|INT||+0||+0|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Know Geography" checked="1" unchecked="" default=""></$checkbox>*|[[Know Geography]]|INT||+4|1|+0|+3|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Know History" checked="1" unchecked="" default=""></$checkbox>*|[[Know History]]|INT||+0||+0|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Know Local" checked="1" unchecked="" default=""></$checkbox>*|[[Know Local]]|INT||+0||+0|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Know Nature" checked="1" unchecked="" default=""></$checkbox>*|[[Know Nature]]|INT||+7|2|+0|+3|+0|+2|[[Nature Sense]]|
|<$checkbox tiddler="ClassSkillsData" index="Know Nobility" checked="1" unchecked="" default=""></$checkbox>*|[[Know Nobility]]|INT||+0||+0|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Know Planes" checked="1" unchecked="" default=""></$checkbox>*|[[Know Planes]]|INT||+4|1|+0|+3|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Know Religion" checked="1" unchecked="" default=""></$checkbox>*|[[Know Religion]]|INT||+2|2|+0|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Linguistics" checked="1" unchecked="" default=""></$checkbox>|[[Linguistics]]|INT||+0||+0|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Perception" checked="1" unchecked="" default=""></$checkbox>|[[Perception]]|WIS||+12|4|+5|+3|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Perform" checked="1" unchecked="" default=""></$checkbox>*|[[Perform]]|CHA||+4||+4|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Profession" checked="1" unchecked="" default=""></$checkbox>|[[Profession]]|WIS||+5||+5|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Ride" checked="1" unchecked="" default=""></$checkbox>|[[Ride]]|DEX||+1||+1|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Sense Motive" checked="1" unchecked="" default=""></$checkbox>*|[[Sense Motive]]|WIS||+5||+5|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Sleight of Hand" checked="1" unchecked="" default=""></$checkbox>*|[[Sleight of Hand]]|DEX||+1||+1|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Spellcraft" checked="1" unchecked="" default=""></$checkbox>|[[Spellcraft]]|INT||+7|4|+0|+3|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Stealth" checked="1" unchecked="" default=""></$checkbox>|[[Stealth]]|DEX||+1||+1|+0|+0|+0|[[No Penalty for ice/snow|Icewalking]]|
|<$checkbox tiddler="ClassSkillsData" index="Survival" checked="1" unchecked="" default=""></$checkbox>|[[Survival]]|WIS||+14|4|+5|+3|+0|+2|[[Nature Sense]]|
|<$checkbox tiddler="ClassSkillsData" index="Swim" checked="1" unchecked="" default=""></$checkbox>*|[[Swim]]|STR||+5||+2|+0|+0|+0||
|<$checkbox tiddler="ClassSkillsData" index="Use Magic Device" checked="1" unchecked="" default=""></$checkbox>|[[Use Magic Device]]|CHA||+4||+4|+0|+0|+0||
"""
Modifiers: -4 CHA Rolls on the Glacier ([[Mark of the Witch]])
-2 all Skills in Civilized Lands ([[Uncivilized]])
"""
[[Total Ranks|Leveling]]: 30 (21 + 10 Knowledges, 1 unused) Max Rank: 4
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! One with the Land
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 1 hour/level
Saving Throw: Spell Resistance:
"""
You forge a strong link with nature that gives you greater insight into your environment. You gain a +2 competence bonus on Animal Empathy, Stealth, Perception, Survival, Know Nature, and Handle Animal checks.
Source: Magic of Faerun
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Outbreak
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
necromancy
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Area: 20-ft. burst
Duration: instantaneous
Saving Throw: Fortitude partial Spell Resistance: yes
"""
You cause any diseased creatures in the area to become extremely contagious. Any affected creature is overcome by a fit of wracking coughs, causing it to become fatigued and exposing any creatures within 10 feet of the diseased creature to the diseases it carries. On a successful save, a creature is fatigued for 1 round and doesn't have a chance to infect nearby creatures.
Source: Villain Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Overstimulate
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M/DF (smelling salts)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 1 round/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
You deprive a creature of the blissful oblivion of unconsciousness, either to keep it going despite grievous injuries or to prolong its suffering. For the duration of the spell, the target gains the ferocity ability (Pathfinder RPG Bestiary 300), allowing it to remain conscious and continue fighting even if its hit point total is below 0. The target is still staggered and loses 1 hit point each round, and the target still dies when its hit point total reaches a negative amount equal to its Constitution score.
Source: Inner Sea Temples
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Owl's Wisdom
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M/DF (feathers or droppings from an owl)
Range: touch
Targets: creature touched
Duration: 1 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes
"""
The transmuted creature becomes wiser. The spell grants a +4 enhancement bonus to Wisdom, adding the usual benefit to Wisdom-related skills. Clerics, druids, and rangers (and other Wisdom-based spellcasters) who receive owl's wisdom do not gain any additional bonus spells for the increased Wisdom, but the save DCs for their spells increase.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Pack Empathy
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
divination
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: you plus one willing living creature per 3 levels, no two of which can be more than 30 ft. apart
Duration: 1 hour/level (D)
Saving Throw: none Spell Resistance: no
"""
You create an instinctual connection between the targets. Each can sense the others' overall emotional states, which allows them to communicate basic emotional concepts (such as alerting each other of danger due to increased stress). Once the spell has been cast on the subjects, the distance between them and the caster doesn't affect the spell as long as they are on the same plane of existence. If a subject leaves the plane, or if it dies, the spell ceases to function for it.
Source: Ultimate Intrigue
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Pale Flame
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S, M (caphorite shard)
Range: 0 ft.
Effect: flame in your palm
Duration: 1 minute/level (D)
Saving Throw: none Spell Resistance: yes
"""
This spell functions as per produce flame, except that the flames never glow brighter than dim light, including any fires started by this spell. These flames cast light only half the distance of a torch and cannot be seen from more than 100 feet away. The flames deal 2d6 points of fire damage + 1 point per caster level (maximum +5). Against plants, this damage increases to 2d6 points + 2 points per caster level (maximum +10).
Source: Heroes Of The Darklands
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Pass without Trace
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, DF
Range: touch
Targets: one creature/level touched
Duration: 1 hour/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The subject or subjects of this spell do not leave footprints or a scent trail while moving. Tracking the subjects is impossible by nonmagical means.
Source: PFRPG Core
! Learn a Language
Whenever you put a rank into this skill, you learn to speak and read a new language. Common languages (and their typical speakers) are listed below.
!! Aboleth
Spoken By: Aboleth and other deep sea (aquatic) aberrations.
!! Abyssal
Spoken By: Demons and other chaotic evil outsiders
The language of demons, Abyssal is often spoken by evil spirits.
!! Aklo
Spoken By: Derro, inhuman or otherworldly monsters, evil fey.
This ancient tongue is spoken by strange eldritch entities, and certain ancient beings.
!! Aquan (“Tongue of the Sea”)
Spoken By: Aquatic and water-based creatures
The so-called “tongue of the sea” is spoken primarily in the sunken nation of the locathahs— those who trade frequently with the ocean empires often speak this tongue as well.
!! Auran (“Tongue of the Heavens”)
Spoken By: Flying creatures, air-based creatures
A soft-spoken, breathy language, also known as the “tongue of the heavens.”
!! Boggard
Spoken By: Boggards.
!! Celestial
Spoken By: Angels and other good outsiders.
The language of angels.
!! Common
Spoken By: humans and the other core races
!! Cyclops
Spoken By: Cyclops and their kin.
Once the ancient language of the giants, this tongue was created before the rise of humanity by the cyclopes.
!! Dark Folk
Spoken By: Dark creepers, dark slayers, and dark stalkers (creatures of the Dark Folk subtype.)
!! Draconic
Spoken By: dragons, reptilian humanoids
!! Drow Sign Language
Used By: Drow.
Like Druidic, drow sign language is a “secret” language.
!! Druidic
Spoken By: Druids (only)
Druidic is a secret language known only to druids. It is a free language for a druid; that is, it doesn’t take up a language slot. Druids are forbidden to teach this language to nondruids and has its own alphabet.
!! Dwarven
Spoken By: Dwarves.
!! D’ziriak
Spoken By: D’ziriak.
The insectoid d’ziriak language consists of buzzes and chitters. It is an obscure one known by few outside their race.
!! Elven
Spoken By: Elves, half-elves
!! Giant
Spoken By: Cyclops, ettins, giants, ogres, trolls
This brutish tongue and its numerous minor variants are spoken in any region where the wrath of giants is known.
!! Gnoll
Spoken By: Gnolls
!! Gnome
Spoken By: Gnomes
!! Goblin
Spoken By: Bugbears, goblins, hobgoblins
The official language of hobgoblins, this dialect is similar to the goblin tongue.
!! Grippli
Spoken By: Grippli.
!! Halfling
Spoken By: Halflings
!! Ignan (“Tongue of Fire”)
Spoken By: Fire-based creatures
!! Infernal
Spoken By: Devils and other lawful evil outsiders
The language of devils is often spoken by evil spirits.
!! Necril
Spoken By: undead
An ancient language of the dead, this whispering tongue is shared among undead and is also often associated with necromancy.
!! Orc
Spoken By: Orcs, half-orcs
!! Protean
Spoken By: Proteans.
Like the proteans chaotic nature, the protean language itself is mutable, evolving so quickly that few outsiders can understand it without magical aid.
!! Sphinx
Spoken By: Sphinxes.
!! Sylvan
Spoken By: Centaurs, fey creatures, plant creatures, unicorns.
The language of the fey.
!! Tengu
Spoken By: Tengu
The official language of the tengu race.
!! Terran (“Tongue of Earth”)
Spoken By: Earth-based creatures.
!! Treant
Spoken By: Treants.
!! Undercommon
Spoken By: Drow, duergar, morlocks, svirfneblin.
This language is derived from an ancient combination of Elven and even older tongues.
!! Vegepygmy
Used By: Vegepygmies.
Vegepygmy is not a spoken language since vegepygmies cannot speak. They communicate via a crude language of rhythmic taps, beats, and clicks.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Peace Bond
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration
1 standard action V, S, M/DF (a glass cube)
Range: close (25 ft. + 5 ft./2 levels)
Area: one or more 5-ft. cubes, no two of which can be more than 30 ft. apart
Duration: 1 minute/level
Saving Throw: none Spell Resistance: no
"""
This spell creates one glowing rune of peace, plus one per 2 caster levels above 1st (to a maximum of five runes at 9th level). An identical symbol appears on your forehead for the duration of the spell and cannot be disguised (though it is visible only if you are visible). Each rune illuminates a 5-foot cube, preventing any spell you cast of up to 3rd level and that has a defined area (as opposed to targets or an effect) from entering or affecting the 5-foot cube. For example, creatures and items within any square affected by peace bond take no damage from a fireball you cast. However, if you cast stinking cloud, the noxious vapors are an effect and enter such cubes normally. This spell does not break line of effect within any other spells you cast; it simply negates all effects of your 1st-, 2nd- and 3rd-level area spells within the peace bond's area. Peace bond offers no protection against your spell-like abilities or supernatural area effects.
Source: Heroes Of The Streets
Your senses allow you to notice fine details and alert you to danger. Perception covers all five senses, including sight, hearing, touch, taste, and smell.
Common Uses
Notice Someone/Something
Perception has a number of uses, the most common of which is an opposed check versus an opponent’s Stealth check to notice the opponent and avoid being surprised. If you are successful, you notice the opponent and can react accordingly. If you fail, your opponent can take a variety of actions, including sneaking past you and attacking you.
Perception is also used to notice fine details in the environment. The DC to notice such details varies depending upon distance, the environment, and how noticeable the detail is. The following table gives a number of guidelines.
|!Detail | !Perception DC |
|Hear the sound of battle | –10 |
|Notice the stench of rotting garbage | –10 |
|Detect the smell of smoke | 0 |
|Hear the details of a conversation | 0 |
|Notice a visible creature | 0 |
|Determine if food is spoiled | 5 |
|Hear the sound of a creature walking | 10 |
|Hear the details of a whispered conversation | 15 |
|Find the average concealed door | 15 |
|Hear the sound of a key being turned in a lock | 20 |
|Find the average secret door | 20 |
|Hear a bow being drawn | 25 |
|Sense a burrowing creature underneath you | 25 |
|Notice a pickpocket |Opposed by Sleight of Hand|
|Notice a creature using Stealth |Opposed by Stealth|
|Find a hidden trap |Varies by trap|
|Identify the powers of a potion through taste |15 + the potion‘s caster level|
|!Perception Modifiers |!DC Modifier|
|Distance to the source, object, or creature | +1/10 feet |
|Through a closed door | +5 |
|Through a wall | +10/foot of thickness |
|Favorable conditions^^1^^ | –2 |
|Unfavorable conditions1 | +2 |
|Terrible conditions^^2^^ | +5 |
|Creature making the check is distracted | +5 |
|Creature making the check is asleep | +10 |
|Creature or object is invisible | +20 |
"""
^^1^^ Favorable and unfavorable conditions depend upon the sense being used to make the check. For example, bright light might increase the DC of checks involving sight, while torchlight or moonlight might give a penalty. Background noise might reduce a DC involving hearing, while competing odors might penalize any DC involving scent.
^^2^^ As for unfavorable conditions, but more extreme. For example, candlelight for DCs involving sight, a roaring dragon for DCs involving hearing, and an overpowering stench covering the area for DCs involving scent.
Action
"""
Most Perception checks are reactive, made in response to observable stimulus. Intentionally searching for stimulus is a move action.
''Retry?''
Yes. You can try to sense something you missed the first time, so long as the stimulus is still present.
Modifiers
''Race''
Elves, half-elves, gnomes, and halflings receive a +2 racial bonus on Perception checks. Creatures with the scent special quality have a +8 bonus on Perception checks made to detect a scent. Creatures with the tremorsense special quality have a +8 bonus on Perception checks against creatures touching the ground and automatically make any such checks within their range.
''Familiars''
A spellcaster with a hawk or owl familiar gains a +3 bonus on Perception checks. If you have the Alertness feat, you get a +2 bonus on Perception (and Sense Motive) checks.
You are skilled at one form of entertainment, from singing to acting to playing an instrument. Like Craft, Knowledge, and Profession, Perform is actually a number of separate skills. You could have several Perform skills, each with its own ranks.
Each of the nine categories of the Perform skill includes a variety of methods, instruments, or techniques, a small sample of which is provided for each category below.
* Act (comedy, drama, pantomime)
* Comedy (buffoonery, limericks, joke-telling)
* Dance (ballet, waltz, jig)
* Keyboard instruments (harpsichord, piano, pipe organ)
* Oratory (epic, ode, storytelling)
* Percussion instruments (bells, chimes, drums, gong)
* String instruments (fiddle, harp, lute, mandolin)
* Wind instruments (flute, pan pipes, recorder, trumpet)
* Sing (ballad, chant, melody)
|!Perform DC |!Performance |
|10 |Routine performance. Trying to earn money by playing in public is akin to begging. You can earn 1d10 cp/day. |
|15 |Enjoyable performance. In a prosperous city, you can earn 1d10 sp/day. |
|20 |Great performance. In a prosperous city, you can earn 3d10 sp/day. In time, you may be invited to join a professional troupe and may develop a regional reputation. |
|25 |Memorable performance. In a prosperous city, you can earn 1d6 gp/day. In time, you may come to the attention of noble patrons and develop a national reputation. |
|30 |Extraordinary performance. In a prosperous city, you can earn 3d6 gp/day. In time, you may draw attention from distant patrons, or even from extraplanar beings. |
!! Common Uses
You can impress audiences with your talent and skill in your chosen performance type.
''Action''
Varies. Trying to earn money by playing in public requires anywhere from an evening’s work to a full day’s performance. The bard’s special Perform-based abilities are described in that class’s description.
''Retry?'' Yes. Retries are allowed, but they don’t negate previous failures, and an audience that has been unimpressed in the past is likely to be prejudiced against future performances. (Increase the DC by 2 for each previous failure.)
!! Modifiers
''Equipment ''
A masterwork musical instrument gives you a +2 circumstance bonus on all Perform checks that involve its use.
''Trained ''
A bard must have ranks in specific Perform categories to use some of his Bardic Performance abilities.
Perform (DC 15) The animal performs a variety of simple tricks, such as sitting up, rolling over, roaring or barking, and so on.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Pernicious Poison
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
necromancy
1 standard action V, S, DF
Range: touch
Targets: creature touched
Duration: 10 minute/level
Saving Throw: none Spell Resistance: yes
"""
You weaken the target's defenses against poison. The target gains a -4 penalty on saves against poison, and poisons affecting the target continue for another 2 frequency increments (for example, black adder venom lasts 8 rounds instead of 6, and arsenic lasts for 6 minutes instead of 4). Attempts to cure the poisoned target with skill or magic take a -4 penalty.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Pesh Vigor
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M (a dose of pesh worth 15 gp)
Range: touch
Targets: living creature touched
Duration: 1 round/level; see text
Saving Throw: Will negates Spell Resistance: yes
"""
The target gains a +2 enhancement bonus to its Strength. Once per round as a free action, the target can choose to increase the enhancement bonus by 2 for 1 round; if it does so, it takes 1d6 points of nonlethal damage and the spell's duration decreases by 1 additional round. For every 5 caster levels you have, the target can choose to increase the enhancement bonus by an additional 2, taking an additional 1d6 points of nonlethal damage and decreasing the duration by 1 additional round per increase to the Strength bonus, to a maximum enhancement bonus of +10 and 4d6 points of nonlethal damage at caster level 15th. The subject can't spend more rounds than remain in the duration. When the spell ends, the subject becomes fatigued.
Source: Black Markets
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Planar Inquiry
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (calling)
10 minutes V, S, M (offerings worth 100 gp per HD of creature called)
Range: close (25 ft. + 5 ft./2 levels)
Effect: one called outsider who answers questions
Duration: instantaneous; see text
Saving Throw: none Spell Resistance: no
"""
Although he was hardly the first to turn to the Outer Planes for answers, Jatembe's dealings with outsiders in his pursuit of enlightenment are legendary, and the Magaambya credits the Old-Mage with the creation of this spell. This spell calls a creature from another plane to your precise location, functioning like lesser planar ally except as noted. When you call a creature using planar inquiry, the only task that you can ask of the creature is for it to answer questions or gather information regarding a specific topic (a person, a place, or a thing). After hearing your request, if the creature has an appropriate Knowledge skill, it can attempt a check to provide the information it has. If it lacks such a skill, the called creature leaves for 1d4 hours to gather this information. Upon its return, you roll 1d20 + your caster level, and use the result to determine what information the creature has gathered about the subject (as if using Diplomacy). The called creature stays for up to 10 minutes as it relays this information to you, after which it departs to its home plane. If the creature is attacked or damaged at any time during the spell's duration, the spell ends and the creature returns to the plane from which you summoned it. When you cast this spell, you can choose a specific kind of outsider to call, even calling an individual creature by name. The kind of outsider called doesn't alter the effects of the spell, but when you use planar inquiry to summon a creature with an alignment or elemental subtype, the spell gains that descriptor. You cannot call an outsider whose Hit Dice exceed your caster level (maximum 18 HD) and you cannot use this spell to contact a unique outsider (such as a deity's herald) or an outsider with mythic ranks.
Source: Adventurer's Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Planar Orientation
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, S
Range: personal
Targets: you
Duration: instantaneous
Saving Throw: Spell Resistance:
"""
This spell helps creatures accustomed to the concrete reality of the Material Plane to navigate within the confusing realities of other planes. When cast, it functions as know direction, save that instead of revealing true north, it reveals the direction of the palace or demesnes most associated with that plane or demiplane's ruling god or demigod, as well as a brief and generic vision of that entity's appearance or holy symbol. The spell functions only within whatever plane or demiplane you are located in at the time; for instance, if cast within a specific demon lord's Abyssal realm or on a given layer of Hell, it would point to the seat of power for that demon lord or archdevil, not Lamashtu or Asmodeus. If a plane or demiplane has multiple gods or rulers, such as the Eldest of the First World or Heaven's various Empyreal Lords and deities, it reveals the directions of the closest three, allowing for triangulation. This spell reveals the location of the god or demigod's official seat of power only, not the entity itself, and if such a location is deliberately hidden via magic of any sort, the spell automatically fails. It does not function on the Material Plane.
Source: The First World Realm Of The Fey
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Planetarium
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
illusion (figment)
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Effect: 15-ft.-radius spherical projection of night sky
Duration: concentration + 3 rounds
Saving Throw: none Spell Resistance: Will disbelief (harmless)
"""
You project an image of the night sky based on your current location and the local time, allowing you to observe the heavens and all of its celestial bodies and features even during the daytime, indoors, or underground. Anyone within the planetarium's sphere can see the projection, though outside of the sphere the image becomes grainy and indistinct.
Source: People Of The Stars
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Plant Growth
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: see text
Area: see text
Targets: see text
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
Plant growth has different effects depending on the version chosen. Overgrowth: This effect causes normal vegetation (grasses, briars, bushes, creepers, thistles, trees, vines, and so on) within long range (400 feet + 40 feet per caster level) to become thick and overgrown. The plants entwine to form a thicket or jungle that creatures must hack or force a way through. Speed drops to 5 feet, or 10 feet for Large or larger creatures. The area must have brush and trees in it for this spell to take effect. If this spell is cast on an area that is already affected by any spell or effect that enhances plants, such as entangle or wall of thorns, any DC involved with these spells is increased by 4. This bonus is granted for 1 day after the casting of plant growth. At your option, the area can be a 100-foot-radius circle, a 150-foot-radius semicircle, or a 200-foot-radius quarter circle. You may designate places within the area that are not affected. Enrichment: This effect targets plants within a range of a halfmile, raising their potential productivity over the course of the next year to one-third above normal. Plant growth counters diminish plants. This spell has no effect on plant creatures.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Plant Voice
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a small root cutting)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one plant creature
Duration: 10 minutes/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You grant one plant creature the ability to speak, hear, and understand any of the languages you know. If you know more than one language, you may grant the plant creature up to one language per 2 caster levels and you decide which languages to grant when the spell is cast. This spell does not cause the plant creature to be predisposed toward you in any way, but allows you to interact with them with Charisma-based skills normally. Plant creatures with an Intelligence score of 2 or lower can communicate and understand only the simplest of concepts, such as "friend," "food," and "danger." This spell has no effect on ordinary plants and fungus.
Source: Cohorts & Companions
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Pocketful Of Vipers
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (summoning)
1 round V, S, M (a snake scale and fang)
Range: touch
Targets: object touched
Duration: 1 hour/level or until discharged (D)
Saving Throw: Fortitude negates (object) Spell Resistance: no
"""
You set a magical ward upon the object touched, which must be a container such as a pouch, bag, backpack, or pocket. If any creature opens the container without first speaking a command word, 1d3 summoned venomous snakes (Pathfinder RPG Bestiary 255) appear, slithering out of the container and attacking that creature for 1 round/level before disappearing. They attack other creatures only if they themselves are attacked.
Source: Ultimate Intrigue
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Poison
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
necromancy
1 standard action V, S, DF
Range: touch
Targets: living creature touched
Duration: instantaneous; see text
Saving Throw: Fortitude negates; see text Spell Resistance: yes
"""
Calling upon the venomous powers of natural predators, you infect the subject with a horrible poison by making a successful melee touch attack. This poison deals 1d3 Constitution damage per round for 6 rounds. Poisoned creatures can make a Fortitude save each round to negate the damage and end the affliction.
Source: PFRPG Core
! Poisonous Frog
|N Tiny animal|
|''Init'' +1 ''Senses'' [[Low-Light Vision]] ''Perception'' +3|
|!Defense |
|''AC'' 13, touch 13, flat-footed 12 |
|''hp'' 4 (1d8) |
|''Fort'' +2, ''Ref'' +3, ''Will'' -1 |
|!Offense |
|''Speed'' 10 ft., swim 20 ft. |
|''Melee'' bite +3 (1 plus poison) |
|''Space'' 2-1/2, ''Reach'' 0 |
|''Special Attacks'' [[Poison]] |
|!Statistics |
|''Str'' 2, ''Dex'' 12, ''Con'' 11, ''Int'' 1, ''Wis'' 9, ''Cha'' 10 |
|''Base Attack'' +0, ''CMB'' -1, ''CMD'' 5 (9 vs. [[Trip]]) |
|''Feats'' Weapon Finesse |
|''Skills'' Acrobatics +5 (+9 jumping), Perception +3, Stealth +13, Swim +9 |
|''Racial Modifiers'' +4 Acrobatics (+8 jumping), +4 Stealth; uses Dex to swim |
|!Special Abilities |
|!''Poison'' (Ex) |
|Injury; save Fort DC 10; frequency 1/round for 6 rounds; effect 1d2 Con damage; cure 1 save. |
Poisonous frogs are a bright green color, with additional bright yellow, red, or blue markings. They are just over a foot long and weigh 10 pounds. The poison of poisonous frogs is often gathered by primitive tribes and used to coat darts and arrows for hunting.
!! [[Polar Bear]]
[Companion]
"""
You live a hard life in a cold climate, and after enduring the hardships of many brutal winters, you’ve gained some benefit from the frozen environs.
''Prerequisite''
Base Fort +2, Bear
''Benefit''
You are an arctic bear with fur treating environmental cold conditions as two levels less due to cold protection. This does not protect against cold damage or effects, but does give a Racial +2 Save bonus against cold. Further, you have a Swim speed of 10 ft, a +8 Racial Bonus to Swim, and a +4 Racial Bonus to Acrobatics, Climb, Stealth and Survival when in a cold environment. A large polar bear gets a Swim Speed of 20 ft.
Source: Homebrew
Taken: 1st Level
(This is a combination of the environmental rules for Cold Protection from Frostburn, the feats Rugged Northerner from Pathfinder’s Adventure Guide, and Cold Endurance from Frostburn, plus a few additions to the animal stats for polar bear).
"""
! Pony
|N Medium animal|
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +5|
|!Defense |
|''AC'' 11, touch 11, flat-footed 10 |
|''hp'' 13 (2d8+4) |
|''Fort'' +5, ''Ref'' +4, ''Will'' +0 |
|!Offense |
|''Speed'' 40 ft. |
|''Melee'' 2 hooves -3 (1d3) |
|!Statistics |
|''Str'' 13, ''Dex'' 13, ''Con'' 14, ''Int'' 2, ''Wis'' 11, ''Cha'' 4 |
|''Base Attack'' +1, ''CMB'' +2, ''CMD'' 13 (17 vs. [[Trip]]) |
|''Feats'' Endurance, RunB |
|''Skills'' Perception +5 |
|''SQ'' docile (see horse) |
|!Special Abilities |
|!''Docile'' (Ex) |
|Unless specifically trained for combat (see the Handle Animal skill) a pony’s hooves are treated as secondary attacks. |
Ponies are smaller breeds of horses better suited to halflings, gnomes, and dwarves, but they also make fond pets for humans as well. They stand 3 to 4 feet tall and weigh about 600 pounds.
A light load for a pony is up to 100 pounds, a medium load is 101–200 pounds, and a heavy load is 201–300 pounds. A pony can drag 1,500 pounds.
The statistics presented above are for a typical pony. Tougher ponies with the advanced simple template exist, but are relatively uncommon and, unlike horses, these creatures are not generally called “heavy ponies.”
Like horses, ponies can be trained for combat with the Handle Animal skill, and such mounts often serve halflings, gnomes, and other small races as steeds in combat.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Pouncing Fury
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 1 round/level
Saving Throw: Spell Resistance:
"""
When you charge, you can make a full attack at the end of that charge, but only with claw attacks you have, and you can make only one attack per claw. If you have abilities that grant bonuses on damage rolls or that apply other special effects to charge attacks, only the first claw attack benefits from these bonuses. When you make a claw attack as an attack of opportunity, you can expend one additional use of your attacks of opportunity to make an additional claw attack against the target that provoked the attack.
Source: Ultimate Wilderness
!! [[Power Attack]]
[Combat]
"""
You can make exceptionally deadly melee attacks by sacrificing accuracy for strength.
''Prerequisites''
STR 13, BAB +1
''Benefit''
You can choose to take a –1 penalty on all melee attack rolls and combat maneuver checks to gain a +2 bonus on all melee damage rolls. This bonus to damage is increased by half (+50%) if you are making an attack with a two-handed weapon, a one handed weapon using two hands, or a primary natural weapon that adds 1-1/2 times your Strength modifier on damage rolls. This bonus to damage is halved (–50%) if you are making an attack with an off-hand weapon or secondary natural weapon.
When your base attack bonus reaches +4, and every 4 points thereafter, the penalty increases by –1 and the bonus to damage increases by +2.
You must choose to use this feat before making an attack roll, and its effects last until your next turn. The bonus damage does not apply to touch attacks or effects that do not deal hit point damage.
Source: Core
Taken: 5th Level
"""
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Pox Pustules
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
necromancy
1 standard action V, S, M (leaves from a toxic plant)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 1 minute/level
Saving Throw: Fortitude negates Spell Resistance: yes
"""
You inflict a painful, itching rash on the target creature. The target is sickened and takes a -4 penalty to Dexterity (this penalty cannot lower Dexterity below 0). The target can spend a move action scratching furiously at the rash to remove the sickened condition (but not the Dexterity penalty) until the start of its next turn.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Predator's Cry
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
necromancy
1 swift action V
Range: medium (100 ft. + 10 ft./level)
Targets: up to one animal/level, no two of which are more than 60 feet apart
Duration: 1 round/level
Saving Throw: Will partial Spell Resistance: yes
"""
Particularly effective against cavalry, this spell causes all affected animals to become panicked. If a panicked animal carries a rider, the rider must succeed on a DC 25 Ride check to prevent the animal from trying to flee the battlefield. If the animal successfully saves, it is instead shaken for the duration of the spell.
Source: The Forge of War
<$list filter="[tag[Spell]tag[Divine]field:prepared[1]sort[title]]"/>
<$list filter="[tag[Spell]tag[Arcane]field:prepared[1]sort[title]]"/>
[[Go to Spell Lists|Spell Lists]]
! Druid
!! Orisons
<$list filter="[tag[Spell]tag[Divine]field:spelllevel[0]!field:prepared[0]sort[title]]"/>
!! 1st level Spells
<$list filter="[tag[Spell]tag[Divine]field:spelllevel[1]!field:prepared[0]sort[title]]"/>
!! 2nd level Spells
<$list filter="[tag[Spell]tag[Divine]field:spelllevel[2]!field:prepared[0]sort[title]]"/>
!! 3rd level Spells
<$list filter="[tag[Spell]tag[Divine]field:spelllevel[3]!field:prepared[0]sort[title]]"/>
! Sorcerer
!! Cantrips
<$list filter="[tag[Spell]tag[Arcane]field:spelllevel[0]!field:prepared[0]sort[title]]"/>
!! 1st level Spells
<$list filter="[tag[Spell]tag[Arcane]field:spelllevel[1]!field:prepared[0]sort[title]]"/>
\*
(function(){
"use strict";
exports.name = "preparedSpellCards";
exports.params = [
{ name: "clssName", default: "Druid" },
{ name: "columnSize", default: "3" }
];
exports.run = function(clssName,columnSize) {
var spellIndex = 0;
var rowCount = 0;
var colCount = 0;
var thisLevelCount = 0;
var thisRows = 0;
var outputString = '<table>';
var spellTiddler = this.wiki.getTiddler("SpellData");
var spellData = JSON.parse(spellTiddler.fields.text);
var thisClssLevel = spellData[clssName];
var maxSpellLevel = spellData[clssName+"Max"];
var castingStat = spellData[clssName+"Stat"];
var bagName = spellData[clssName+"Bag"];
var clsstiddler = this.wiki.getTiddler("classData");
var clssData = JSON.parse(clsstiddler.fields.text);
var chartiddler = this.wiki.getTiddler("CharacterData");
var charData = JSON.parse(chartiddler.fields.text);
for( spellIndex = 0; spellIndex < maxSpellLevel+1; spellIndex++ ) {
var baseArray = JSON.parse( spellData[clssName+" Prepared "+spellIndex] );
var thisArray = [];
var spIndex = 0;
for( spIndex in baseArray ) {
var thisCardName = baseArray[spIndex];
var spellTiddler = this.wiki.getTiddler(thisCardName);
var thisSpellSlots = spellTiddler.fields.slots;
var spCount;
for( spCount = 0; spCount < thisSpellSlots; spCount++ ) {
thisArray.push(thisCardName);
}
}
var allyNumber = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"];
var spontCastString = '';
var thisSPD = clssData[clssName].SPD[thisClssLevel][spellIndex];
var SPDModifier = 0;
var extraSPDString = '';
/*
if( spellIndex > 0 ) {
SPDModifier = Math.max( 0, Math.floor( (charData[castingStat]-2*spellIndex - 2)/8 ) );
if( bagName !== "None" ) { extraSPDString = "+1"; }
spontCastString = '<tr><td colspan=3>[[Summon Nature\'s Ally ' + allyNumber[spellIndex] + ' Spell]]</td></tr>';
}
var SPDFinalValue = thisSPD+SPDModifier;
*/
thisLevelCount = thisArray.length;
thisRows = Math.floor( thisLevelCount/columnSize );
var thisCardCount = 0;
for( rowCount = 0; rowCount < thisRows; rowCount++ ) {
var spellIndexString = "";
if( rowCount == 0 ) {
switch( spellIndex ) {
case 1:
spellIndexString = "1st";
break;
case 2:
spellIndexString = "2nd";
break;
case 3:
spellIndexString = "3rd";
break;
default:
spellIndexString = spellIndex+"th";
}
outputString += '<tr><td colspan="3"\; style="font-size:150%\;">'+spellIndexString+' Spells</td></tr><tr><td colspan="3"\; >Spells per Day: '+SPDFinalValue+extraSPDString+'</td></tr>';
outputString += spontCastString;
}
}
outputString += '<tr>';
for( colCount = 0; colCount < columnSize; colCount++ ) {
var thisCardName = thisArray[ (rowCount*columnSize + colCount) ];
var safeCardName = thisCardName.replace(" Spell","");
var spellTiddler = this.wiki.getTiddler(thisCardName);
var thisSpellInfo = spellTiddler.fields.text;
var thisSpellTags = spellTiddler.fields.tags;
var cardClassValue = "D";
if( !thisSpellTags.includes( bagName ) || colCount!==0 || rowCount!==0 || spellIndex==0 ) { cardClassValue = spellIndex; }
var castValue = "cast";
var castString = "cast";
if( rowCount > 0 || colCount > 0 ) {
if( thisArray[ (rowCount*columnSize + colCount) ] == thisArray[ (rowCount*columnSize + colCount - 1) ] ) {
thisCardCount++;
castValue += thisCardCount;
} else {
thisCardCount = 0;
}
}
if( spellTiddler.fields[castValue]!=="1" ) { castString = ""; }
thisSpellInfo = thisSpellInfo.slice( ( thisSpellInfo.indexOf("\"\"\"")+17 ), thisSpellInfo.lastIndexOf("\"\"\"") );
outputString += '<td><table class="'+castString+'spellcard'+cardClassValue+'"><tr style="font-size: 30px\;" height: 40px\;><td>[['+thisCardName+'|'+thisCardName+']]</td></tr><tr style="font-size: 24px\;" height: 30px\;><td>SL '+spellIndex+'</td></tr><tr rowspan=6><td height=290px\;>\"\"\"'+thisSpellInfo+'\"\"\"</td></tr></table>';
if( ( spellIndex != 0 || clssName == "SLA" ) && thisSpellSlots != "at Will" ) { outputString += '<table><tr><td><$button><$action-setfield $tiddler="'+thisCardName+'" '+castValue+'=1 /><$action-setfield $tiddler="'+clssName+' Spell Cards" button="cast'+safeCardName+'" />Cast Spell</$button> <$button><$action-setfield $tiddler="'+thisCardName+'" '+castValue+'=0 /><$action-setfield $tiddler="'+clssName+' Spell Cards" button="load'+safeCardName+'" />Reload Spell</$button></td></tr></table>';
}
outputString += '</td>';
}
outputString += '</tr>';
}
outputString += '<tr>';
var remainingCards = thisLevelCount - thisRows*columnSize;
for( colCount = 0; colCount < remainingCards; colCount++ ) {
thisCardName = thisArray[ (thisRows*columnSize + colCount) ];
var safeCardName = thisCardName.replace(" Spell","");
var spellTiddler = this.wiki.getTiddler(thisCardName);
var thisSpellInfo = spellTiddler.fields.text;
var thisSpellTags = spellTiddler.fields.tags;
var cardClassValue = "D";
if( !thisSpellTags.includes( bagName ) || spellIndex==0 ) { cardClassValue = spellIndex; }
var castValue = "cast";
var castString = "cast";
if( thisArray[ (thisRows*columnSize + colCount) ] == thisArray[ (thisRows*columnSize + colCount - 1) ] ) {
thisCardCount++;
castValue += thisCardCount;
} else {
thisCardCount = 0;
}
if( spellTiddler.fields[castValue]!=="1" ) { castString = ""; }
thisSpellInfo = thisSpellInfo.slice( ( thisSpellInfo.indexOf("\"\"\"")+17 ), thisSpellInfo.lastIndexOf("\"\"\"") );
outputString += '<td><table class="'+castString+'spellcard'+cardClassValue+'"><tr style="font-size: 30px\;" height: 40px\;><td>[['+thisCardName+'|'+thisCardName+']]</td></tr><tr style="font-size: 24px\;" height: 30px\;><td>SL '+spellIndex+'</td></tr><tr rowspan=6><td height=290px\;>\"\"\"'+thisSpellInfo+'\"\"\"</td></tr></table>';
if( ( spellIndex != 0 || clssName == "SLA" ) && thisSpellSlots != "at Will" ) { outputString += '<table><tr><td><$button><$action-setfield $tiddler="'+thisCardName+'" '+castValue+'=1 /><$action-setfield $tiddler="'+clssName+' Spell Cards" button="cast'+safeCardName+'" />Cast Spell</$button> <$button><$action-setfield $tiddler="'+thisCardName+'" '+castValue+'=0 /><$action-setfield $tiddler="'+clssName+' Spell Cards" button="load'+safeCardName+'" />Reload Spell</$button></td></tr></table>';
}
outputString += '</td>';
}
outputString += '</tr>';
}
outputString += '</table>';
return outputString
};
})();
*/
[["Detect Magic","Read Magic","Mending","Light"],["Frostbite","Wood Wose","Snowball","Frozen Spear","Magic Fang","Ice Slick"],["Chill Metal","Stone Discus","Stone Discus","Frost Breath"],["Sleet Storm","Remove Disease","Giant's Wrath"]]
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Pressure Adaptation
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
abjuration
1 standard action V, S, M (slime from a cephalopod)
Range: touch
Targets: creature touched
Duration: 1 hour/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
The target adapts incredibly quickly to changes in pressure, adjusting to 100 feet of new pressure (or the entire shift, in the case of an instantaneous shift within its native range; see page 48) after just one successful Fortitude saving throw instead of the usual five.
Source: Aquatic Adventures
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Primal Hunter
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 24 hours
Saving Throw: Spell Resistance:
"""
Your muscles ripple with the memory of ancestral strength, tensing for quick action. This spell causes your body to recall the strength of your forebears, hearkening back to a time when your ancestors constantly struggled for survival. You gain a +5 competence bonus on Climb, Acrobatics, and Swim checks. If primal hunter is active on you at the same time as primal instinct, primal senses, or primal speed, you gain uncanny dodge (as the barbarian class feature). If all four of these spells are active on you at the same time, you gain improved uncanny dodge (as the barbarian class feature; your barbarian level for the purpose of being flanked equals your caster level).
Source: Dragon Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Primal Instinct
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 24 hours
Saving Throw: Spell Resistance:
"""
Rings of blue-white energy travel from your feet to your head and back again, vanishing after encircling you in their glow. This spell calls upon the raw natural forces within you to grant the basic instincts possessed by your ancestors. You gain a +5 competence bonus on initiative and Survival checks. If primal instinct is active on you at the same time as primal hunter, primal senses, or primal speed, you gain uncanny dodge (as the barbarian class feature). It all four of these spells are active on you at the same time, you gain improved uncanny dodge (as the barbarian class feature; your barbarian level for the purpose of being flanked equals your caster level).
Source: Dragon Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Produce Flame
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
evocation
1 standard action V, S
Range: 0 ft.
Effect: flame in your palm
Duration: 1 min./level
Saving Throw: none Spell Resistance: yes
"""
Flames as bright as a torch appear in your open hand. The flames harm neither you nor your equipment. In addition to providing illumination, the flames can be hurled or used to touch enemies. You can strike an opponent with a melee touch attack, dealing fire damage equal to 1d6 + 1 point per caster level (maximum +5). Alternatively, you can hurl the flames up to 120 feet as a thrown weapon. When doing so, you attack with a ranged touch attack (with no range penalty) and deal the same damage as with the melee attack. No sooner do you hurl the flames than a new set appears in your hand. Each attack you make reduces the remaining duration by 1 minute. If an attack reduces the remaining duration to 0 minutes or less, the spell ends after the attack resolves. This spell does not function underwater.
Source: PFRPG Core
You are skilled at a specific job. Like Craft, Knowledge, and Perform, Profession is actually a number of separate skills. You could have several Profession skills, each with its own ranks. While a Craft skill represents ability in creating an item, a Profession skill represents an aptitude in a vocation requiring a broader range of less specific knowledge. The most common Profession skills are architect, baker, barrister, brewer, butcher, clerk, cook, courtesan, driver, engineer, farmer, fisherman, gambler, gardener, herbalist, innkeeper, librarian, merchant, midwife, miller, miner, porter, sailor, scribe, shepherd, stable master, soldier, tanner, trapper, and woodcutter.
!! Common Uses
!! Earn a Living
You can earn half your Profession check result in gold pieces per week of dedicated work. You know how to use the tools of your trade, how to perform the profession’s daily tasks, how to supervise helpers, and how to handle common problems. You can also answer questions about your Profession. Basic questions are DC 10, while more complex questions are DC 15 or higher.
''Action''
Not applicable. A single check generally represents a week of work.
''Retry?'' Varies. An attempt to use a Profession skill to earn income cannot be retried. You are stuck with whatever weekly wage your check result brought you. Another check may be made after a week to determine a new income for the next period of time. An attempt to accomplish some specific task can usually be retried.
!! Untrained
Untrained laborers and assistants (that is, characters without any ranks in Profession) earn an average of 1 silver piece per day.
!! Modifiers
''Race ''
A gnome gets a +2 bonus on a Craft or Profession skill of her choice.
! Weapon and Armor Profiencies
''Weapons'': simple weapons, scimitar, scythe, natural attacks
''Armor'': light and medium armor, shields (except tower shields)
!! Druids
"""
Weapon Proficiency: Druids are proficient with the following weapons: club, dagger, dart, quarterstaff, scimitar, scythe, sickle, shortspear, sling, and spear. They are also proficient with all natural attacks (claw, bite, and so forth) of any form they assume with wild shape (see below).
Ulutiu adds his favored weapon, the spear. So Ulutiu druids are also proficient in the long spear.
Druids are proficient with light and medium armor but are prohibited from wearing metal armor; thus, they may wear only padded, leather, or hide armor. A druid may also wear wooden armor that has been altered by the ironwood spell so that it functions as though it were steel. Druids are proficient with shields (except tower shields) but must use only those crafted from wood.
A druid who wears prohibited armor or uses a prohibited shield is unable to cast druid spells or use any of her supernatural or spell-like class abilities while doing so and for 24 hours thereafter.
"""
!! Sorcerers
"""
Weapon Proficiency: Sorcerers are proficient with all simple weapons. They are not proficient with any type of armor or shield. Armor interferes with a sorcerer’s gestures, which can cause her spells with somatic components to fail (see [[Arcane Spells and Armor]]).
"""
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Protection from Energy
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
abjuration
1 standard action V, S, DF
Range: touch
Targets: creature touched
Duration: 10 min./level or until discharged
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
Protection from energy grants temporary immunity to the type of energy you specify when you cast it (acid, cold, electricity, fire, or sonic). When the spell absorbs 12 points per caster level of energy damage (to a maximum of 120 points at 10th level), it is discharged. Protection from energy overlaps (and does not stack with) resist energy. If a character is warded by protection from energy and resist energy, the protection spell absorbs damage until its power is exhausted.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Protection From Spores
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
1 standard action V, S
Range: touch
Targets: creature touched
Duration: 1 minute/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: no
"""
With a touch, you bolster a creature's body to protect it from the harmful effects of spores and similar afflictions. While under the effect of this spell, a creature is immune to the effects of brown mold, green slime, russet mold, yellow mold, and any similar hazard, provided the hazard is CR 6 or lower. Similarly, the creature is immune to poison, disease, and infestation attacks from all fungal creatures of CR 6 or lower, including effects such as basidirond spores, violet fungus rot, and the like. The target is immune to fungus-based toxins, such as striped toadstool. Against similar hazards or monsters of CR 7 or higher, the target gains a bonus on all saving throws against the effect equal to half your caster level. Protection from spores offers no protection against fungal infestations created by the seeded, by the spell what grows within, or by Xhamen-Dor.
Source: AP 113
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Pup Shape
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation (polymorph)
1 standard action V, S, M (a rag doll)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one animal
Duration: 1 round/level
Saving Throw: Fortitude negates (and Will special, see text) Spell Resistance: yes
"""
You transform the subject animal into a Small magical beast (or a magical beast one size category smaller than the original creature, whichever is smaller), creating a young magical version of itself for a short period of time. While in this form, the target has only 1 HD (maximum hit points), and the target takes a -4 penalty to Strength, Constitution, Intelligence and Wisdom (minimum 1). The creature also gains a +4 size bonus to Dexterity and a +2 natural armor bonus. Any nonevil creature that attempts to attack a creature in this form must succeed at a Will saving throw (using the DC of the spell) to overcome feelings of guilt and protectiveness toward the young and innocent-seeming creature. On a failed saving throw, it cannot follow through with the attack, that part of the action is lost, and it can't directly attack the transformed creature for the duration of the spell or until the spell's target attacks it. This part of the spell is a mind-affecting emotion effect. Evil creatures have no qualms about attacking the target of this spell, in fact, some particularly heinous creatures might go out of their ways to do the target harm.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Purify Food and Drink
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
transmutation
1 standard action V, S
Range: 10 ft.
Targets: 1 cu. ft./level of contaminated food and water
Duration: instantaneous
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
This spell makes spoiled, rotten, diseased, poisonous, or otherwise contaminated food and water pure and suitable for eating and drinking. This spell does not prevent subsequent natural decay or spoilage. Unholy water and similar food and drink of significance is spoiled by purify food and drink, but the spell has no effect on creatures of any type nor upon magic potions. Water weighs about 8 pounds per gallon. One cubic foot of water contains roughly 8 gallons and weighs about 60 pounds.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Quell Energy
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
abjuration
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 1 round/level
Saving Throw: Will partial Spell Resistance: yes
"""
You reduce the target creature's ability to tap into a single energy type (acid, cold, electricity, fire, or sonic) of your choice. This reduces damage of the selected type the creature deals with spells, spell-like abilities, and supernatural abilities by 10 points. Multiple castings of this spell stack. Damage from sources other than the creature, such as objects and magic items, is not reduced. If the damage of one of the creature's effects is negated entirely, any additional effects associated with that damage (such being stunned by sound burst o r set on fi re by a fi re e lemental) a re also negated. At 13th level, you reduce the target's damage by 20 points, and at 19th level, you reduce the target's damage by 30 points. If the target succeeds on its saving throw, the spell's duration is reduced to 1 round.
Source: Occult Origins
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Quench
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: medium (100 ft. + 10 ft./level)
Area: one 20-ft. cube/level (S)
Targets: one fire-based magic item
Duration: instantaneous
Saving Throw: none or Will negates (object) Spell Resistance: no or yes (object)
"""
Quench is often used to put out forest fires and other conflagrations. It extinguishes all nonmagical fires in its area. The spell also dispels any fire spells in its area, though you must succeed on a dispel check (1d20 +1 per caster level, maximum +15) against each spell to dispel it. The DC to dispel such spells is 11 + the caster level of the fire spell. Each creature with the fire subtype within the area of a quench spell takes 1d6 points of damage per caster level (maximum 10d6, no save allowed). Alternatively, you can target the spell on a single magic item that creates or controls flame. The item loses all its fire-based magical abilities for 1d4 hours unless it succeeds on a Will save. Artifacts are immune to this effect.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Quick Change
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation (polymorph)
1 standard action V, S
Range: personal
Targets: you
Duration: 1 hour/level
Saving Throw: Spell Resistance:
"""
If you have the change shape special quality, you can revert to your true form as a swift action. If a creature is not aware of your true form, when you use this spell to revert to your true form and attack that creature in the same round, the creature is denied its Dexterity bonus to AC against your first attack.
Source: Horror Adventures
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Radiation Ward
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
1 standard action V, S
Range: touch
Targets: creature touched
Duration: 1 hour/level (D)
Saving Throw: Fort negates (harmless) Spell Resistance: yes (harmless)
"""
A creature warded by this spell gains a +4 bonus on saving throws against radiation-based effects. In addition, the warded creature is immediately aware when it enters an area of radiation, as well as the radiation level (low, medium, high, or severe) suffusing the area.
Source: Heroes Of The Darklands
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Raging Rubble
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 round V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Effect: one swarm of stones
Duration: concentration + 2 rounds
Saving Throw: none Spell Resistance: yes
"""
You animate an area of rubble, gravel, or other small stones, creating a dangerous, rolling area of debris. The animated rubble has a space of 10 feet and acts like a swarm, damaging (1d6 hit points) and distracting (DC 12) anything within it. As a move action, you can direct the rubble to move up to 10 feet. If the rubble is attacked, treat it as a Medium animated object with the young creature simple template and the swarm subtype.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Rain of Frogs
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (summoning)
1 round V, S, M/DF (a square of red cloth)
Range: close (25 ft. + 5 ft./2 levels)
Effect: one swarm of poisonous frogs
Duration: concentration + 2 rounds
Saving Throw: none Spell Resistance: no
"""
This spell functions as summon swarm, except you summon a swarm of poisonous frogs. This swarm has the statistics of a centipede swarm (Bestiary 43), except it has the animal type and its poison deals Constitution damage instead of Dexterity damage.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Raven's Flight
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 swift action V
Range: personal
Targets: you
Duration: 1 round
Saving Throw: Spell Resistance:
"""
You can cast this spell only if it is the first action you take on your turn. In a burst of shadowy feathers, you turn into a Tiny blurred shape reminiscent of a black raven until the beginning of your next turn. You gain a fly speed of 50 feet with good maneuverability, and apply appropriate size modifiers (though your ability scores don't change). Until the beginning of your next turn, you can take only the 5-foot step, move, run, or withdraw actions. If the spell is dispelled while you are still aloft, the power of flight dissipates slowly; you float downward 60 feet on your next turn, then fall any remaining distance.
Source: Heroes Of The Wild
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ray of Sickening
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
necromancy
1 standard action V, S, M (a drop of sweat)
Range: close (25 ft. + 5 ft./2 levels)
Effect: ray
Duration: 1 min./level
Saving Throw: Fortitude partial; see text Spell Resistance: yes
"""
This spell functions as ray of exhaustion, except the target is sickened if it fails its save and unaffected if it makes its save.
Source: Ultimate Magic
Reach: You use a reach weapon to strike opponents 10 feet away, but you can’t use it against an adjacent foe.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Read Magic
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
divination
1 standard action V, S, F (a clear crystal or mineral prism)
Range: personal
Targets: you
Duration: 10 min./level
Saving Throw: Spell Resistance:
"""
You can decipher magical inscriptions on objects-books, scrolls, weapons, and the like-that would otherwise be unintelligible. This deciphering does not normally invoke the magic contained in the writing, although it may do so in the case of a cursed or trapped scroll. Furthermore, once the spell is cast and you have read the magical inscription, you are thereafter able to read that particular writing without recourse to the use of read magic. You can read at the rate of one page (250 words) per minute. The spell allows you to identify a glyph of warding with a DC 13 Spellcraft check, a greater glyph of warding with a DC 16 Spellcraft check, or any symbol spell with a Spellcraft check (DC 10 + spell level). Read magic can be made permanent with a permanency spell.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Read Weather
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 minute V, S, F (a set of marked sticks or bones worth at least 25 gp)
Range: personal
Targets: you
Duration: instantaneous
Saving Throw: Spell Resistance:
"""
This spell allows you to forecast the weather at your location for the next 48 hours, providing you with advance warning of storms, tornadoes, and so on. This forecast reveals only the weather that would arise naturally, and does not take into account any magical occurrences that might change the weather.
Source: Inner Sea Gods
Receive Spell (DC 25): The companion has been trained to be the recipient of a specific spell (chosen at the time the animal is taught the trick), allowing it to fully take advantage of the spell’s effects. The spell should be one that grants the companion an ability it might not normally be intelligent enough to make use of or one that it might not even realize it has (such as air walk ). The companion is able to recognize when it has been affected by this spell and can take full advantage of the spell’s effects. At the GM’s discretion, a companion can also be trained to receive certain nonspell effects, such as those granted by an elixir of fire breathing. The companion can be taught this trick multiple times; each time it learns this trick, it becomes trained to utilize a different spell effect.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Recentering Drone
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature/2 levels (no two of which may be more than 30 ft. apart)
Duration: concentration
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You emit a calming subsonic drone that allows the targets to temporarily refocus and restore their balance when they're suffering from debilitating conditions. A target with the dazzled, fatigued, shaken, or sickened condition ignores the penalties of those conditions for the duration of this spell. A target with one of the following conditions is treated as having the associated lesser condition for the duration of the spell, as shown by the following table. Condition Lesser Condition Blinded Dazzled Exhausted Fatigued Frightened Shaken Nauseated Sickened At the end of the spell's duration, the targets are again subject to the appropriate penalties if the original conditions affecting the target are still in effect.
Source: Champions Of Balance
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Recharge Innate Magic
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: instantaneous
Saving Throw: Spell Resistance:
"""
You channel magic energy into your own aura, recharging your innate magic abilities. You regain one use of all 0-level and 1st-level spell-like abilities you can use as a result of a racial trait.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Reduce Animal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: touch
Targets: one willing animal of Small, Medium, Large, or Huge size
Duration: 1 hour/level
Saving Throw: none Spell Resistance: no
"""
This spell functions like reduce person, except that it affects a single willing animal. Reduce the damage dealt by the animal's natural attacks as appropriate for its new size (see Chapter 6 how to adjust damage for size).
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Reinvigorating Wind
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
enchantment (compulsion) [air, mind-affecting]
1 standard action V, S, M/DF (a flower petal)
Range: 30 ft.
Area: cone-shaped burst
Duration: instantaneous
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You exhale deeply, creating a gentle magical wind that invigorates any allies in the affected area, as follows. Any sleeping allies immediately wake up. Fascinated allies are shaken free of the fascinate effect. Flat-footed allies no longer count as flat-footed even if they have not acted yet. The duration of effects that cause any allies to be confused, frightened, paralyzed, slowed, or stunned is decreased by 1d4 rounds (roll separately for each target). If the duration of any such effect is reduced to 0 rounds or fewer, the effect ends for that ally. Finally, any allies lying prone may stand up as an immediate action, provoking attacks of opportunity as normal.
Source: Villain Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Remove Disease
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (healing)
1 standard action V, S
Range: touch
Targets: creature touched
Duration: instantaneous
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
Remove disease can cure all diseases from which the subject is suffering. You must make a caster level check (1d20 + caster level) against the DC of each disease affecting the target. Success means that the disease is cured. The spell also kills some hazards and parasites, including green slime and others. Since the spell's duration is instantaneous, it does not prevent reinfection after a new exposure to the same disease at a later date.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Remove Sickness
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (healing)
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 10 minutes/level; see text
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
You quell feelings of illness and nausea in the target, giving it a +4 morale bonus on saving throws against disease, nausea, and sickened effects. If the subject is already under the influence of one of these effects when receiving the spell, that effect is suppressed for the duration of the spell.
Source: Ultimate Magic
Rescue (DC 20): The companion has been trained to drag its handler or another creature that the handler designates out of danger and to a safe place in the event that the handler or creature is incapacitated. If a creature that the companion is defending is rendered helpless or is slain, the companion will carry, drag, or otherwise move that creature out of danger. If the companion knows the get help trick, it will attempt to bring the creature it is rescuing to one of the creatures designated as “help.” Otherwise, you can designate a single location in advance as a safe place, and the companion will attempt to bring the creature it is rescuing to that place. If it is unable to do either of these, the companion simply moves the creature to the nearest location of relative safety. A companion must have the deliver and guard tricks in order to learn this trick.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Resinous Skin
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 10 minutes/level
Saving Throw: see text Spell Resistance: no
"""
You coat your body with a resinous substance, protecting you from attacks and binding weapons that strike you. You gain DR 5/piercing, as well as a +4 circumstance bonus to your CMD against disarm attempts and on saving throws against effects that cause you to drop something you are holding. Additionally, you gain a +2 circumstance bonus on combat maneuver checks to initiate a grapple, maintain a grapple, and pin a foe. Any enemy you grapple takes a -2 penalty on attempts to break the grapple and to escape the grapple using Escape Artist. Any weapon, that strikes you becomes stuck unless its wielder succeeds at a Reflex saving throw. Such a weapon can be pulled free of you only with a successful Strength check (DC = your saving throw DC for this spell). This spell has no effect on unarmed strikes or natural weapons.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Resist Energy
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
1 standard action V, S, DF
Range: touch
Targets: creature touched
Duration: 10 min./level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
This abjuration grants a creature limited protection from damage of whichever one of five energy types you select: acid, cold, electricity, fire, or sonic. The subject gains resist energy 10 against the energy type chosen, meaning that each time the creature is subjected to such damage (whether from a natural or magical source), that damage is reduced by 10 points before being applied to the creature's hit points. The value of the energy resistance granted increases to 20 points at 7th level and to a maximum of 30 points at 11th level. The spell protects the recipient's equipment as well. Resist energy absorbs only damage. The subject could still suffer unfortunate side effects. Resist energy overlaps (and does not stack with) protection from energy. If a character is warded by protection from energy and resist energy, the protection spell absorbs damage until its power is exhausted.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Resistance
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
abjuration
1 standard action V, S, M/DF (a miniature cloak)
Range: touch
Targets: creature touched
Duration: 1 minute
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You imbue the subject with magical energy that protects it from harm, granting it a +1 resistance bonus on saves. Resistance can be made permanent with a permanency spell.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Restful Cloak
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (healing)
1 standard action V, S, F (cloak)
Range: personal
Targets: you
Duration: 1 hour/level
Saving Throw: none Spell Resistance: no
"""
A cloak you are wearing transforms into a canvas tent large enough to hold four Medium creatures, firmly pitched in a flat area adjacent to you (if there is no such area, this spell simply fails). A creature regains 1 hit point for each hour it rests in the tent, in addition to any other benefits of resting. Additionally, a fatigued creature resting within the tent for 1 hour loses the fatigued condition, but a creature cannot recover from being fatigued more than once per casting of restful tent. At the end of the spell's duration, the tent transforms back into a cloak. If the tent is moved prior to the expiration of the spell's duration, the spell immediately ends.
Source: Adventurer's Armory 2
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Restore Corpse
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
necromancy
1 standard action V, S
Range: touch
Targets: corpse touched
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
You grow flesh on a decomposed or skeletonized corpse of a Medium or smaller creature, providing it with sufficient flesh that it can be animated as a zombie rather than a skeleton. The corpse looks as it did when the creature died. The new flesh is somewhat rotted and not fit for eating.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Reveal Mirage
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 standard action V, S, F (a small prism)
Range: personal
Targets: you
Duration: 1 round
Saving Throw: Spell Resistance:
"""
You can focus upon a single point within line of sight and discern if the terrain or geographic features of that point are illusory. This ability allows you a Will save to disbelieve a terrain-affecting illusion (glamer) effect from range as though you had interacted with it. In addition to affecting such spells as hallucinatory terrain and mirage arcana, this spell also allows you to disbelieve naturally occurring mirages.
Source: Osirion, Legacy Of Pharaohs
! Rhinoceros
|N Large animal |
|''Init'' +2 ''Senses'' [[Scent]] ''Perception'' +12|
|!Defense |
|''AC'' 16, touch 9, flat-footed 16 |
|''hp'' 42 (5d8+20) |
|''Fort'' +10, ''Ref'' +4, ''Will'' +2 |
|!Offense |
|''Speed'' 40 ft. |
|''Melee'' gore +8 (2d6+9) |
|''Space'' 10, ''Reach'' 5 |
|''Special Attacks'' [[Powerful Charge]] (gore, 4d6+12) |
|!Statistics |
|''Str'' 22, ''Dex'' 10, ''Con'' 19, ''Int'' 2, ''Wis'' 13, ''Cha'' 5 |
|''Base Attack'' +3, ''CMB'' +10 , ''CMD'' 20 (24 vs. [[Trip]]) |
|''Feats'' Endurance, Great Fortitude, Skill Focus (Perception) |
|''Skills'' Perception +12 |
|!Special Abilities |
The rhinoceros feeds on leafy plants, branches, and even thorny shrubs. Its thick hide is a mottled gray color, and it can run surprisingly fast for a beast of its size. The rhinoceros is notoriously short-tempered and prone to attacking anything it perceives as approaching too closely (generally within a distance of 80 feet—the distance of a single charge—for most rhinos).
You are skilled at riding mounts, usually a horse, but possibly something more exotic, like a griffon or pegasus. If you attempt to ride a creature that is ill suited as a mount, you take a –5 penalty on your Ride checks.
!!Common Uses
!!Perform Special Action While Riding a Mount
Typical riding actions don’t require checks. You can saddle, mount, ride, and dismount from a mount without a problem. The following tasks do require checks.
//Guide with Knees//: You can guide your mount with your knees so you can use both hands in combat. Make your Ride check at the start of your turn. If you fail, you can use only one hand this round because you need to use the other to control your mount. This does not take an action.
//Stay in Saddle//: You can react instantly to try to avoid falling when your mount rears or bolts unexpectedly or when you take damage. This usage does not take an action.
//Fight with a Combat-Trained Mount//: If you direct your war-trained mount to attack in battle, you can still make your own attack or attacks normally. This usage is a free action.
//Cover//: You can react instantly to drop down and hang alongside your mount, using it as cover. You can’t attack or cast spells while using your mount as cover. If you fail your Ride check, you don’t get the cover benefit. Using this option is an immediate action, but recovering from this position is a move action (no check required).
//Soft Fall//: You negate damage when you fall off a mount. If you fail the Ride check, you take 1d6 points of damage and are prone. This usage does not take an action.
//Leap//: You can get your mount to leap obstacles as part of its movement. If the Ride check to make the leap succeeds, make a check using your Ride modifier or the mount’s jump modifier, whichever is lower, to see how far the creature can jump. If you fail your Ride check, you fall off the mount when it leaps and take the appropriate falling damage (at least 1d6 points). This usage does not take an action but is part of the mount’s movement.
//Spur Mount//: You can spur your mount to greater speed with a move action. A successful Ride check increases the mount’s speed by 10 feet for 1 round but deals 1d3 points of damage to the creature. You can use this ability every round, but the mount becomes fatigued after a number of rounds equal to its Constitution score. This ability cannot be used on a fatigued mount.
//Control Mount in Battle//: As a move action, you can attempt to control a light horse, pony, heavy horse, or other mount not trained for combat riding while in battle. If you fail the Ride check, you can do nothing else in that round. You do not need to roll for horses or ponies trained for combat.
//Fast Mount or Dismount//: You can attempt to mount or dismount from a mount of up to one size category larger than yourself as a free action, provided that you still have a move action available that round. If you fail the Ride check, mounting or dismounting is a move action. You can’t use fast mount or dismount on a mount more than one size category larger than yourself.
|!Task | !Ride DC |
|Guide with knees | 5 |
|Stay in saddle | 5 |
|Fight with a combat-trained mount | 10 |
|Cover | 15 |
|Soft fall | 15 |
|Leap | 15 |
|Spur mount | 15 |
|Control mount in battle | 20 |
|Fast mount or dismount | 20 |
''Action''
Varies. Mounting or dismounting normally is a move action. Other checks are a move action, a free action, or no action at all, as noted above.
!! Modifiers
''Equipment ''
If you are riding bareback, you take a –5 penalty on Ride checks. If you use a military saddle you get a +2 circumstance bonus on Ride checks related to staying in the saddle.
''Feat''
If you have the Animal Affinity feat, you get a +2 bonus on Ride skill checks. If you have 10 or more ranks in Ride, the bonus increases to +4.
!! Notes
Ride is a prerequisite for Mounted Archery, Mounted Combat, Ride-By Attack, Spirited Charge, and Trample.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Rite Of Bodily Purity
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration
1 hour V, M (soothing incense worth 100 gp)
Range: personal
Targets: you
Duration: 24 hours or until discharged
Saving Throw: Spell Resistance:
"""
You energize your body's immune system, improving your ability to resist toxins and ailments. You gain a +2 resistance bonus on saving throws to resist diseases, drugs, and poisons. Additionally, at any time during the spell's duration, whenever you fail a saving throw to resist a disease, drug, or poison, you can expend the spell's remaining duration as an immediate action in order to reroll that saving throw. You must take the second result, even if it's worse. The +2 resistance bonus granted by the spell applies to the reroll, but after you make this reroll, the spell ends.
Source: Divine Anthology
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Rite Of Centered Mind
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration
1 hour V, M (soothing incense worth 100 gp)
Range: personal
Targets: you
Duration: 24 hours or until discharged
Saving Throw: Spell Resistance:
"""
You heighten your awareness of your own thoughts, allowing you to more easily resist outside influences. You gain a +1 resistance bonus on saving throws to resist mind-affecting effects. This resistance bonus is increased to +2 if the effect is an emotion or fear effect. Additionally, at any time during the spell's duration, whenever you fail a saving throw to resist a mind-affecting effect, you can expend the spell's remaining duration as an immediate action in order to reroll that saving throw. You must take the second result, even if it's worse. The +2 resistance bonus granted by the spell applies to the reroll, but after you make this reroll, the spell ends.
Source: Divine Anthology
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Riversight
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination (scrying)
1 minute V, S, F/DF (a smooth river stone)
Range: see text
Effect: magical sensor
Targets: nonmagical freshwater waterway
Duration: 1 minute/level (D)
Saving Throw: none Spell Resistance: no
"""
You can view events transpiring along a natural watercourse you touch. You can see anything on or within the river as if you were present at that location, or you can observe anything happening within 15 feet of the river's banks as if peering from the water's surface. Moving your point of view to a different location along the river is a standard action, though your perception can follow something moving along the river as a free action. The range of this spell is affected by whether you are attempting to gaze up or downriver-if viewing a location downriver, you can view any spot within 2 miles per caster level; if viewing upriver, you can view any spot within 1/2 mile per caster level. The magical sensor created by this spell can travel only as far along the river as your range and the river permits; obstructions such as dams and reservoirs halt the sensor, as does an estuary flowing into the sea or other body of saltwater.
Source: People Of The River
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Rock Whip
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation)
1 standard action V, S
Range: 0 ft.
Effect: whip of earth and stone
Duration: 1 round/level (D)
Saving Throw: none Spell Resistance: no
"""
A 15-foot-long lash of crumbling crystal and earth emerges from the palm of your hand. This weapon is treated as a nonmagical whip that deals 1d8 points of bludgeoning damage. You can wield this weapon as a whip as if you were proficient with it, and it isn't subject to the disarm or sunder combat maneuver. The whip passes through natural unworked stone effortlessly, allowing you to ignore cover between you and your target from such sources. Armor and natural armor have no effect on the damage dealt by a rock whip (unlike a normal whip), but the whip deals no damage to outsiders with the earth subtype. Attacks with a rock whip strike with resounding force; you can make a free bull rush combat maneuver against any creature you strike with a rock whip, using your caster level in place of your base attack bonus and your primary casting ability score modifier (Charisma for sorcerers, Intelligence for wizards, and so on) in place of your Strength modifier.
Source: Heroes Of The Darklands
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Saltray
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 level)
Effect: ray
Duration: instantaneous
Saving Throw: Fortitude partial Spell Resistance: yes
"""
You must succeed on a ranged touch attack with the ray to strike a target. A creature struck by a saltray takes 1d6 points of damage per two caster levels (maximum 5d6) and must make a Fortitude save or be stunned for 1 round.
Source: Spell Compendium
! [[Skills]]
<table>
<tr style="background: lightgray;"><td></td><td>''Skill''</td><td>''Ability''</td><td></td><td>''Total''</td><td>''Rank''</td><td>''Mod''</td><td>''Class''</td><td>''Misc''</td><td>''ACP''</td><td>''Notes''</td></tr>
<<skillTableLine "Acrobatics">>
<<skillTableLine "Appraise">>
<<skillTableLine "Bluff">>
<<skillTableLine "Climb">>
<<skillTableLine "Craft">>
<<skillTableLine "Diplomacy">>
<<skillTableLine "Disable Device">>
<<skillTableLine "Disguise">>
<<skillTableLine "Escape Artist">>
<<skillTableLine "Fly">>
<<skillTableLine "Handle Animal">>
<<skillTableLine "Intimidate">>
<<skillTableLine "Know Arcane">>
<<skillTableLine "Know Dungeoneering">>
<<skillTableLine "Know Geography">>
<<skillTableLine "Know History">>
<<skillTableLine "Know Local">>
<<skillTableLine "Know Nature">>
<<skillTableLine "Know Nobility">>
<<skillTableLine "Know Planes">>
<<skillTableLine "Know Religion">>
<<skillTableLine "Linguistics">>
<<skillTableLine "Perception">>
<<skillTableLine "Profession">>
<<skillTableLine "Perform">>
<<skillTableLine "Ride">>
<<skillTableLine "Sense Motive">>
<<skillTableLine "Sleight of Hand">>
<<skillTableLine "Stealth">>
<<skillTableLine "Spellcraft">>
<<skillTableLine "Survival">>
<<skillTableLine "Swim">>
<<skillTableLine "Use Magic Device">>
</table>
Modifiers: -4 CHA Rolls on the Glacier ([[Mark of the Witch]])
-2 all Skills in Civilized Lands ([[Uncivilized]])
"""
[[Total Ranks|Leveling]]: 30 (21 + 10 Knowledges, 1 unused) Max Rank: 4
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Savage Maw
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 1 minute/level (D), special (see below)
Saving Throw: Spell Resistance:
"""
Your teeth extend and sharpen, transforming your mouth into a maw of razor-sharp fangs. You gain a bite attack that deals 1d4 points of damage plus your Strength modifier. If you confirm a critical hit with this attack, it also deals 1 point of bleed damage. If you already have a bite attack, your bite deals 2 points of bleed damage on a critical hit. You are considered proficient with this attack. If used as part of a full-attack action, the bite is considered a secondary attack, is made at your full base attack bonus -5, and adds half your Strength modifier to its damage. You can end this spell before its normal duration by making a bestial roar as a swift action. When you do, you can make an Intimidate check to demoralize all foes within a 30-foot radius that can hear the roar.
Source: Advanced Race Guide
|!Save|!Mod|!Base|!Ability|!Misc|!Temp|
|!Fort|+<$calc><<baseSaves Fort>>+<<statModifier CON>></$calc>|+<<baseSaves Fort>>|<<statModifier CON>>|+0||
|!Refl|+<$calc><<baseSaves Ref>>+<<statModifier DEX>></$calc>|+<<baseSaves Ref>>|<<statModifier DEX>>|+0||
|!Will|+<$calc><<baseSaves Will>>+<<statModifier WIS>></$calc>|+<<baseSaves Will>>|<<statModifier WIS>>|+0||
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Scale Spikes
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M/DF (a small thorn)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one living creature/level that is a reptile, has the dragon type, or has the reptilian subtype, and that also has a natural armor bonus of at least +1
Duration: 1 minute/level
Saving Throw: Fort negates (harmless) Spell Resistance: yes (harmless)
"""
When the target is affected by this spell, its scales grow jagged spikes. These spikes act like +1 armor spikes. The subject is automatically considered proficient with these scale spikes.
Source: Monster Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Scamper
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 swift action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: your animal companion
Duration: 1 round; see text
Saving Throw: none Spell Resistance: no
"""
Your animal companion moves with astonishing agility and speed until the end of its turn. It can move at full speed while using Acrobatics, and it gains a competence bonus equal to twice your caster level (maximum +20 at 10th level) on Acrobatics checks to avoid attacks of opportunity or move through a square occupied by an enemy.
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Scarify
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
necromancy
1 standard action V, S
Range: touch
Targets: creature touched
Duration: instantaneous
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
Your touch causes a single creature's skin to produce fibrous tissue that sutures the creature's wounds, rapidly closing them and leaving jagged scars where the wounds were. The process is painful, and converts 2d6 points of damage + 1 point per caster level (maximum +5) into nonlethal damage. If the target creature is immune to nonlethal damage, the spell fails. Damage resistance against nonlethal damage reduces the amount of damage converted. This effect counts as healing for the purpose of stopping bleed damage. Kuthites are especially fond of this spell, as it gives them permanent physical reminders of the all too brief pain they endured.
Source: Inner Sea Temples
!! Scent ([[Ex|Extraordinary Ability]])
This extraordinary ability lets a creature detect approaching enemies, sniff out hidden foes, and track by sense of smell.
A creature with the scent ability can detect opponents by sense of smell, generally within 30 feet. If the opponent is upwind, the range is 60 feet. If it is downwind, the range is 15 feet. Strong scents, such as smoke or rotting garbage, can be detected at twice the ranges noted above. Overpowering scents, such as skunk musk or troglodyte stench, can be detected at three times these ranges.
The creature detects another creature’s presence but not its specific location. Noting the direction of the scent is a move action. If the creature moves within 5 feet (1 square) of the scent’s source, the creature can pinpoint the area that the source occupies, even if it cannot be seen.
A creature with the [[Survival]] skill and the scent ability can follow tracks by smell, making a [[Survival]] check to find or follow a track. A creature with the scent ability can attempt to follow tracks using [[Survival]] untrained. The typical DC for a fresh trail is 10. The DC increases or decreases depending on how strong the quarry’s odor is, the number of creatures, and the age of the trail. For each hour that the trail is cold, the DC increases by 2. The ability otherwise follows the rules for the Survival skill in regards to tracking. Creatures tracking by scent ignore the effects of surface conditions and poor visibility.
Creatures with the scent ability can identify familiar odors just as humans do familiar sights.
Water, particularly running water, ruins a trail for air-breathing creatures. Water-breathing creatures that have the scent ability, however, can use it in the water easily.
False, powerful odors can easily mask other scents. The presence of such an odor completely spoils the ability to properly detect or identify creatures, and the base [[Survival]] DC to track becomes 20 rather than 10.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Scent Trail
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a queen ant)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature/level, no two of which can be more than 30 ft. apart
Duration: 1 hour/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
You, or a willing creature you touch, lay down a trail of scents that only the creatures you designate at the time of can detect. These creatures find it very easy to follow this trail. They gain a +20 competence bonus on any Survival checks made for the purpose of tracking the creature laying this trail. Subject creatures with the scent special ability gain a +10 competence bonus on Wisdom or Survival checks to follow the trail. In addition, you can leave scent messages along the trail. Each word or emotion in this message requires spending a move action in the same spot. Subject creatures seeking to understand this message must make another DC 20 Survival check, with a -1 penalty for every word or emotion in the message, in order to understand it. Creatures cannot benefit from this smell if they cannot use, or do not have, a sense of smell. Creatures can use this spell to backtrack through a dungeon, maze, or similar areas even if the creature laying down the trail crossed over the spot multiple times.
Source: APG
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
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Sea Steed
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation (polymorph)
1 standard action V, S, DF
Range: touch
Targets: a creature you are mounted upon
Duration: 10 minutes/level (D)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The target adapts to life in the water, gaining piscine scales that cover its body and growing fins in place of feet. It gains the aquatic subtype, the amphibious quality, and a swim speed equal to its base speed before it came under the effect of this spell. While under the effects of this spell, the target's base speed is reduced by 10 feet (minimum 10 feet).
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Sebaceous Twin
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: touch
Targets: living creature touched
Duration: 1 round/level (see text)
Saving Throw: none (see text) Spell Resistance: yes
"""
By touching a living target, you cause a half-formed, parasitic clone of the target to burst from its midsection. The twin dangles from the target's body, making it difficult for the target to move easily and imparting a -2 penalty on Acrobatics and Climb checks. In addition, for the spell's duration, the target must succeed at a Fortitude saving throw at the start of its turn each round, or else it takes 1 point of Constitution damage and is sickened for that round as the twin siphons off its blood. Each time the target receives any healing (magical or otherwise), the duration of this spell is extended by 1 round. Each attack that deals damage to the target reduces the duration of this spell by 1 round. If the duration reaches 0 rounds in this manner, the twin is violently excised from the body, and the target takes 1d6 points of bleed damage (which can be healed as normal). The effect of sebaceous twin counts as a disease effect with a DC equal to the spell's saving throw DC.
Source: AP 119
Seek (DC 15) The animal moves into an area and looks around for anything that is obviously alive or animate.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Sense Fear
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 standard action V, S, M/DF (a patch of fur)
Range: personal
Targets: you
Duration: 10 minutes/level (D)
Saving Throw: Spell Resistance:
"""
You sense the fear of those nearby, feeling it in the air around you. You can detect spooked, shaken, scared, frightened, panicked, terrified, and horrified creatures within 30 feet, and you immediately know what level of fear they are experiencing. You determine the creatures' approximate direction from you, though you do not sense a given creature's identity or know which squares the creatures occupy. If you're within 5 feet of a creature whose fear you sense, you pinpoint that creature's location, as if using blindsense.
Source: Horror Adventures
You are skilled at detecting falsehoods and true intentions.
!! Common Uses
A successful check lets you avoid being bluffed (see the Bluff skill). You can also use this skill to determine when “something is up” (that is, something odd is going on) or to assess someone’s trustworthiness.
//Hunch//: This use of the skill involves making a gut assessment of the social situation. You can get the feeling from another’s behavior that something is wrong, such as when you’re talking to an impostor. Alternatively, you can get the feeling that someone is trustworthy.
//Sense Enchantment//: You can tell that someone’s behavior is being influenced by an enchantment effect even if that person isn’t aware of it. The usual DC is 25, but if the target is dominated (see dominate person), the DC is only 15 because of the limited range of the target’s activities.
//Discern Secret Message//: You may use Sense Motive to detect that a hidden message is being transmitted via the Bluff skill. In this case, your Sense Motive check is opposed by the Bluff check of the character transmitting the message. For each piece of information relating to the message that you are missing, you take a –2 penalty on your Sense Motive check. If you succeed by 4 or less, you know that something hidden is being communicated, but you can’t learn anything specific about its content. If you beat the DC by 5 or more, you intercept and understand the message. If you fail by 4 or less, you don’t detect any hidden communication. If you fail by 5 or more, you might infer false information.
|!Task | !Sense Motive DC |
|Hunch | 20 |
|Sense enchantment | 25 or 15 |
|Discern secret message | Varies |
!! Action
Trying to gain information with Sense Motive generally takes at least 1 minute, and you could spend a whole evening trying to get a sense of the people around you.
''Retry?'' No, though you may make a Sense Motive check for each Bluff check made against you.
!! Modifiers
''Class ''
A ranger gains a bonus on Sense Motive checks when using this skill against a favored enemy.
''Feats ''
If you have the Alertness feat, you get a +2 bonus on Sense Motive skill checks. If you have 10 or more ranks in Sense Motive, the bonus increases to +4.
Serve (DC 15): An animal with this trick willingly takes orders from a creature you designate. If the creature you tell the animal to serve knows what tricks the animal has, it can instruct the animal to perform these tricks using your Handle Animal bonus on the check instead of its own. The animal treats the designated ally as friendly. An animal can unlearn this trick with 1 week of training. This trick can be taught to an animal multiple times. Each time it is taught, the animal can serve an additional creature you designate.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Severe Frost
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [cold]
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 level)
Area: 20-ft.-radius spread
Targets: 20-ft.-radius spread
Duration: 1 min./level
Saving Throw: see text Spell Resistance: see text
"""
As ice slick, this spell covers a solid surface with a layer of slippery ice. Any creature in the area when the spell is cast takes 1d6 points of cold damage + 1 point per caster level (maximum +10) and falls prone; creatures that succeed at a Reflex save take half damage and don't fall prone. Spell resistance applies to this initial effect. A creature can walk within or through the area of ice at half normal speed with an Acrobatics check with a DC equal to the Save DC of the spell. Failure means it can't move that round (and must then make a Reflex save or fall), while failure by 5 or more means it falls (see the Acrobatics skill for details). Creatures that do not move on their turn do not need to make this check and are not considered flat-footed. The entire area of effect is considered difficult terrain while the effect lasts. Any creature who starts their turn on the ice slick and whose spell resistance was beaten takes another 1d6 points of cold damage + 1 point per caster level (maximum +10). The ice can be easily removed by heat and fire. A full round of exposure to a torch-sized flame or larger removes the ice from one square or one object. Area effect fire spells will remove the icy from within their area of effect. The ice melts harmlessly at the end of the duration of the spell.
Source: Homebrew
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Shadowmind
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
illusion
1 standard action V, S, M (a small square of black silk)
Range: medium (100 ft. + 10 ft./level)
Targets: up to one creature/level, no two of which can be more than 30 ft. apart
Duration: 1 minute/level
Saving Throw: Will negates Spell Resistance: yes
"""
You dim your targets' perceptions of light and shadow, convincing them the space they occupy is dark. Each creature that fails its save perceives the world around it as one light level darker than its true illumination level. The spell does not change the light level outside of the targets' perception, and does not create magical darkness. However, the spell creates an illusion of darkness rather than actual darkness, so low-light and darkvision don't allow a target to see in the conditions created by the spell. Even targets that see normally through magical darkness suffer a loss of vision from this spell.
Source: Blood Of Shadows
!! [[Share Feature]]
The animal expands its capabilities and learns one of its master’s class features.
''Prerequisites'': Animal companion, master must have the chosen class feature.
''Benefit'': Choose one of the following class features: bravery, camouflage, favored terrain, hide in plain sight, resist nature’s lure, track, trackless step, venom immunity, and woodland stride. The animal companion gains the benefits of the selected class feature, using its Hit Dice as its level in its master’s class for the purpose of this ability; the animal companion gains the benefits of the base class feature, even if the master alters the class feature via an archetype or other means, though the animal companion doesn’t count as having the class feature for the purpose of fulfilling prerequisites.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Share Glory
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one non-mythic creature/3 levels
Duration: 1 minute/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You imbue the targets with a fraction of your mythic nature. They count as mythic creatures for the purpose of path abilities, spells, and other effects that function differently for mythic creatures. This doesn't grant the targets mythic tiers or any uses of mythic power; it merely gives them a greater advantage when others use abilities that work differently for mythic creatures. You must be at least a 1st-tier mythic character to cast this spell.
Source: Mythic Adventures
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Share Husk
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 standard action V, S, M (an edible treat that would appeal to the animal)
Range: touch
Targets: one animal touched
Duration: 1 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes
"""
You sense through an animal's senses, seeing through its eyes and hearing through its ears. While doing so, you use either your Perception modifiers or the animal's, whichever is better. This spell gives you no special ability to understand what you sense. You can switch your perceptions between the animal's and your own on your turn as a free action. You and the animal must be on the same plane for the spell to function.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Share Language
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
1 standard action V, S, M (a page from a dictionary)
Range: touch
Targets: creature touched
Duration: 24 hours
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You can share your facility for one particular language with another creature. For 24 hours the target can read, understand, and communicate to the best of its ability in any one language which you already know. For every 5 levels you possess, you can grant the use of another language you know, to a maximum of 5 languages at 20th level. The target must have the physical capacity to articulate sounds, make gestures, or engage in whatever other method speakers of the language use to communicate with each other in order to actually converse. If the target lacks the mental capacity to grasp an actual language it still gains enough knowledge to respond to and carry out even extremely complex commands or suggestions coached in the language (whether written or spoken). However, since this spell does not endow the target with greater reasoning capacity, merely a temporarily enhanced vocabulary, the person offering up instructions to non-sentient creatures must take care to remove any ambiguity or guesswork. Similarly, this spell does not affect the basic nature of the target, or its disposition toward you or anyone else, so convincing it to actually carry out these instructions could require negotiation, threats, or outright bribery.
Source: APG
Share Spells ([[Ex|Extraordinary Ability]])
The druid may cast a spell with a target of “You” on her animal companion (as a touch range spell) instead of on herself. A druid may cast spells on her animal companion even if the spells normally do not affect creatures of the companion’s type (animal). Spells cast in this way must come from a class that grants an animal companion. This ability does not allow the animal to share abilities that are not spells, even if they function like spells.
! Shark
|N Large animal (aquatic) |
|''Init'' +1 ''Senses'' [[Blindsense]] 30 ft, [[Keen Scent]] ''Perception'' +8|
|!Defense |
|''AC'' 14, touch 10, flat-footed 13 |
|''hp'' 22 (4d8+4) |
|''Fort'' +7, ''Ref'' +5, ''Will'' +2 |
|!Offense |
|''Speed'' swim 60 ft. |
|''Melee'' bite +5 (1d8+4) |
|''Space'' 10, ''Reach'' 5 |
|!Statistics |
|''Str'' 17, ''Dex'' 12, ''Con'' 13, ''Int'' 1, ''Wis'' 12, ''Cha'' 2 |
|''Base Attack'' +3, ''CMB'' +7 , ''CMD'' 18 |
|''Feats'' Great Fortitude, Improved Initiative |
|''Skills'' Perception +8, Swim +11 |
|!Special Abilities |
The shark is a relentless eating machine, a creature evolved over the course of eons to do one job perfectly—hunting. Sharks have achieved a special place in the lore of most seafaring races, who view them as devils, monsters, and the wrath of the gods.
The shark presented here is a 10-foot-long, 300-pound blue shark. Smaller sharks exist, although these are not dangerous. The same cannot be said of larger sharks, such as the following (you can create stats for these sharks by applying the indicated simple templates).
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Sheet Lightning
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S
Range: medium (100 ft. + 10 ft./level)
Targets: 20-ft.-radius spread
Duration: instantaneous
Saving Throw: Fortitude partial Spell Resistance: yes
"""
You create a dazzling flash of electricity that fills the target area. Sheet lightning inflicts 1 point of electricity damage to all creatures within the area of effect (no save). The true power of the spell, though, lies not in the damage it inflicts but in the overwhelming pain the lightning creates. The sudden flash and jolt dazes living creatures for 1 round if they fail a saving throw. Creatures that save are instead dazzled for 1 round. Any creature wearing metal armor takes a -2 penalty to its saving throw against this spell.
Source: Rival Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Shield
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration [force]
1 standard action V, S
Range: personal
Targets: you
Duration: 1 min/level (D)
Saving Throw: Will negates (harmless) Spell Resistance: no
"""
Shield creates an invisible shield of force that hovers in front of you. It negates magic missile attacks directed at you. The disk also provides a +4 shield bonus to AC. This bonus applies against incorporeal touch attacks, since it is a force effect. The shield has no armor check penalty or arcane spell failure chance.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Shifting Sand
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (a handful of sand)
Range: medium (100 ft. + 10 ft./level)
Area: 20-ft. spread
Duration: 1 round/level (D)
Saving Throw: Reflex negates; see text Spell Resistance: no
"""
You cause an earthen or sandy surface to shift and churn within the area. The shifting sand obliterates tracks and is considered difficult terrain. Acrobatics checks in the area take a penalty equal to your caster level (maximum +10). Creatures entering or beginning their turn in the shifting sand must make a Reflex save each round or become entangled until the beginning of their next turn. If they attempt to move while entangled, they must make a second Reflex save or fall prone. Creatures with the stability racial trait (like dwarves) may apply it as a bonus on their saving throws. As a move action, you may move the area of shifting sand up to 10 feet in any direction. Creatures that are entangled or prone in the spell's area are carried along with the shifting sand in the same direction if possible. This movement does not provoke attacks of opportunity. Unattended Medium or smaller objects may also be carried along or shallowly buried by the shifting sand.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Shillelagh
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, DF
Range: touch
Targets: one touched nonmagical oak club or quarterstaff
Duration: 1 min./level
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
Your own nonmagical club or quarterstaff becomes a weapon with a +1 enhancement bonus on attack and damage rolls. A quarterstaff gains this enhancement for both ends of the weapon. It deals damage as if it were two size categories larger (a Small club or quarterstaff so transmuted deals 1d8 points of damage, a Medium 2d6, and a Large 3d6), +1 for its enhancement bonus. These effects only occur when the weapon is wielded by you. If you do not wield it, the weapon behaves as if unaffected by this spell.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Sickening Entanglement
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF
Range: long (400 ft. + 40 ft./level)
Area: plants in a 40-ft.-radius spread
Duration: 1 min./level (D)
Saving Throw: Reflex partial and Fortitude negates (see text) Spell Resistance: no
"""
This spell functions as entangle, except the plants are coated with an irritating sap that creates a painful, itching rash on creatures that touch them. Any creature that enters the area or ends its turn there must succeed at a Fortitude save or be sickened as long as it remains in the area and for 1d4 rounds afterward. This is a poison effect.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Sickening Strikes
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: personal
Targets: you
Duration: 1 round/level
Saving Throw: Fortitude negates; see text Spell Resistance: yes
"""
You are imbued with disease, and any creature you strike with a melee attack must make a Fortitude save or be sickened for 1 minute. Creatures that are immune to disease are immune to this sickened effect.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Signs Of The Land
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
divination
10 minutes V, S
Range: personal
Targets: you
Duration: instantaneous
Saving Throw: Spell Resistance:
"""
This spell functions as commune with nature except it reveals up to three details about the territory you currently occupy from the following list: bodies of water, features, minerals, or plants. For each feature you learn about, you automatically know the skills you can use to discover that feature and you gain 1d6 Discovery Points toward finding it (see page 124).
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Siphon Might
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
necromancy
1 round V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 1 round/level
Saving Throw: Fortitude half Spell Resistance: yes
"""
You drain the might of the target and transfer that power to another creature. The subject takes a penalty to Strength equal to 1d6 + 1 per 2 caster levels (maximum 1d6 + 5). This effect can't cause the subject's Strength score to drop below 1. A successful Fortitude save halves this penalty. This penalty doesn't stack with itself or the penalty applied from ray of enfeeblement. You can grant any one creature adjacent to you (including yourself) an enhancement bonus to Strength equal to the Strength penalty imposed by this spell.
Source: Giant Hunters Handbook
A creatures size comes up frequently. Find below some very commonly referenced information. See page Size, Reach, & Threatened Areas for some examples and diagrams.
|!Creature Size | Size Modifier^^14^^ | Special Size Modifier^^2^^ | Size Modifier to Fly^^4^^ | Size Modifier to Stealth^^4^^ | Space | Natural Reach^^3^^ | Typical Height/Length^^3^^ | Typical Weight^^3^^ |
|Fine | +8 | -8 | +8 | +16 | 1/2 ft. | 0 | 6″ or less | 1/8 lb. or less |
|Diminutive | +4 | -4 | +6 | +12 | 1 ft. | 0 | 6″ to 1 ft. | 1/8 lb. – 1 lb. |
|Tiny | +2 | -2 | +4 | +8 | 2-1/2 ft. | 0 | 1′ to 2 ft. | 1-8 lbs. |
|Small | +1 | -1 | +2 | +4 | 5 ft. | 5 ft. | 2′ to 4 ft. | 8-60 lbs. |
|Medium | +0 | +0 | +0 | +0 | 5 ft. | 5 ft. | 4′ to 8 ft. | 60-500 lbs. |
|Large (tall) | -1 | +1 | -2 | -4 | 10 ft. | 10 ft. | 8′ to 16 ft. | 500-4000 lbs. |
|Large (long) | -1 | +1 | -2 | -4 | 10 ft. | 5 ft. | 8′ to 16 ft. | 500-4000 lbs. |
|Huge (tall) | -2 | +2 | -4 | -8 | 15 ft. | 15 ft. | 16′ to 32 ft. | 2-16 tons |
|Huge (long) | -2 | +2 | -4 | -8 | 15 ft. | 10 ft. | 16′ to 32 ft. | 2-16 tons |
|Gargantuan (tall) | -4 | +4 | -6 | -12 | 20 ft. | 20 ft. | 32′ to 64 ft. | 16 – 125 tons |
|Gargantuan (long) | -4 | +4 | -6 | -12 | 20 ft. | 15 ft. | 32′ to 64 ft. | 16 – 125 tons |
|Colossal (tall) | -8 | +8 | -8 | -16 | 30 ft. | 30 ft. | 64 ft. or more | 125 tons or more |
|Colossal (long) | -8 | +8 | -8 | -16 | 30 ft. | 20 ft. | 64 ft. or more | 125 tons or more |
* ^^1^^ A creatures size modifier applies to its attacks and Armor Class.
* ^^2^^ A creatures special size modifier applies to it’s Combat Maneuver Bonus (CMB) and Combat Maneuver Defense (CMD).
* ^^3^^ These values are typical for creatures of the indicated size. Some exceptions exist.
* ^^4^^ A different size modifier applies to Fly and Stealth skill checks a creature makes.
!! [[Skill Focus]]
[General]
"""
Choose a skill. You are particularly adept at that skill.
''Benefit''
You get a +3 bonus on all checks involving the chosen skill. If you have 10 or more ranks in that skill, this bonus increases to +6.
''Special'': You can gain this feat multiple times. Its effects do not stack. Each time you take the feat, it applies to a new skill.
Source: Core
Taken: 1st Level (Bonus Flaw Feat)
"""
! [[Skills]]
<table>
<tr style="background: lightgray;"><td></td><td>''Skill''</td><td>''Ability''</td><td></td><td>''Total''</td><td>''Rank''</td><td>''Mod''</td><td>''Class''</td><td>''Misc''</td><td>''ACP''</td><td>''Notes''</td></tr>
<<skillTableLine "Acrobatics">>
<<skillTableLine "Appraise">>
<<skillTableLine "Bluff">>
<<skillTableLine "Climb">>
<<skillTableLine "Craft">>
<<skillTableLine "Diplomacy">>
<<skillTableLine "Disable Device">>
<<skillTableLine "Disguise">>
<<skillTableLine "Escape Artist">>
<<skillTableLine "Fly">>
<<skillTableLine "Handle Animal">>
<<skillTableLine "Heal">>
<<skillTableLine "Intimidate">>
<<skillTableLine "Know Arcane">>
<<skillTableLine "Know Dungeoneering">>
<<skillTableLine "Know Geography">>
<<skillTableLine "Know History">>
<<skillTableLine "Know Local">>
<<skillTableLine "Know Nature">>
<<skillTableLine "Know Nobility">>
<<skillTableLine "Know Planes">>
<<skillTableLine "Know Religion">>
<<skillTableLine "Linguistics">>
<<skillTableLine "Perception">>
<<skillTableLine "Perform">>
<<skillTableLine "Profession">>
<<skillTableLine "Ride">>
<<skillTableLine "Sense Motive">>
<<skillTableLine "Sleight of Hand">>
<<skillTableLine "Stealth">>
<<skillTableLine "Spellcraft">>
<<skillTableLine "Survival">>
<<skillTableLine "Swim">>
<<skillTableLine "Use Magic Device">>
</table>
"""
''Modifiers'': -4 CHA Rolls on the Glacier ([[Mark of the Witch]])
-2 all Skills in Civilized Lands ([[Uncivilized]])
"""
[[Total Ranks|Leveling]]: 45 (27 + 18 Knowledges) Max Rank: 6
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Sky Swim
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: touch
Targets: Large or smaller creature touched
Duration: 1 minute/level
Saving Throw: none (harmless) Spell Resistance: yes (harmless)
"""
This spell grants the target the ability to swim through the air. If the target has a swim speed, it can move through the air at that speed. Otherwise, it must succeed at Swim checks to move as normal. Still air is treated as calm water, light or moderate wind is treated as rough water, strong or severe wind is treated as stormy water, and the target cannot swim through stronger winds (Core Rulebook 439). This spell does not grant the ability to breathe air to creatures that normally can't.
Source: Inner Sea Gods
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Sleet Storm
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (creation) [cold]
1 standard action V, S, M/DF (dust and water)
Range: long (400 ft. + 40 ft./level)
Area: cylinder (40-ft. radius, 20 ft. high)
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
Driving sleet blocks all sight (even darkvision) within it and causes the ground in the area to be icy. A creature can walk within or through the area of sleet at half normal speed with a DC 10 Acrobatics check. Failure means it can't move in that round, while failure by 5 or more means it falls (see the Acrobatics skill for details). The sleet extinguishes torches and small fires.
Source: PFRPG Core
!! ''Sleet Trap (Su)''
EFFECTS
The detonating trap creates a 20-foot-radius burst of sleet with the effects of a [[Sleet Storm|Sleet Storm Spell]]. The driving sleet lasts for 1 round, but the icy ground persists for 1 round per ranger level.
Your training allows you to pick pockets, draw hidden weapons, and take a variety of actions without being noticed.
|!DC |!Task |
|10 |Palm a coin-sized object, make a coin disappear |
|20 |Lift a small object from a person |
!! Common Uses
!! Draw Hidden Weapon
Drawing a hidden weapon is a standard action and doesn’t provoke an attack of opportunity.
!! Entertain
You can also use Sleight of Hand to entertain an audience as though you were using the Perform skill. In such a case, your “act” encompasses elements of legerdemain, juggling, and the like.
!! Hide Object
A DC 10 Sleight of Hand check lets you palm a coin-sized, unattended object. Performing a minor feat of legerdemain, such as making a coin disappear, also has a DC of 10 unless an observer is determined to note where the item went.
When you use this skill under close observation, your skill check is opposed by the observer’s Perception check. The observer’s success doesn’t prevent you from performing the action, just from doing it unnoticed.
You can hide a small object (including a light weapon or an easily concealed ranged weapon, such as a dart, sling, or hand crossbow) on your body. Your Sleight of Hand check is opposed by the Perception check of anyone observing you or of anyone frisking you. In the latter case, the searcher gains a +4 bonus on the Perception check, since it’s generally easier to find such an object than to hide it. A dagger is easier to hide than most light weapons, and grants you a +2 bonus on your Sleight of Hand check to conceal it. An extraordinarily small object, such as a coin, shuriken, or ring, grants you a +4 bonus on your Sleight of Hand check to conceal it, and heavy or baggy clothing (such as a cloak) grants you a +2 bonus on the check.
!! Palm Weapon
You can draw a light weapon without anyone noticing.
''Check'': A successful DC 20 Sleight of Hand check allows you to unobtrusively draw a weapon or other object no larger or longer than a light weapon (which includes potions, but not wands or alchemist bombs). Observers can notice you drawing the item as normal with opposed Perception checks. Creatures carefully observing you gain a +4 bonus on this Perception check.
Take Something Unnoticed
If you try to take something from a creature, you must make a DC 20 Sleight of Hand check. The opponent makes a Perception check to detect the attempt, opposed by the Sleight of Hand check result you achieved when you tried to grab the item. An opponent who succeeds on this check notices the attempt, regardless of whether you got the item. You cannot use this skill to take an object from another creature during combat if the creature is aware of your presence.
Action
Any Sleight of Hand check is normally a standard action. However, you may perform a Sleight of Hand check as a move action by taking a –20 penalty on the check.
''Retry?'' Yes, but after an initial failure, a second Sleight of Hand attempt against the same target (or while you are being watched by the same observer who noticed your previous attempt) increases the DC for the task by 10.
Untrained
An untrained Sleight of Hand check is simply a Dexterity check. Without actual training, you can’t succeed on any Sleight of Hand check with a DC higher than 10, except for hiding an object on your body.
!! Modifiers
''Feats ''
If you have the Deft Hands feat, you get a +2 bonus on Sleight of Hand skill checks. If you have 10 or more ranks in Sleight of Hand, the bonus increases to +4.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Slipstream
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [water]
1 standard action V, S, M/DF (a few drops of oil and water)
Range: touch
Targets: creature touched
Duration: 10 minutes/level (D)
Saving Throw: Reflex negates (harmless) Spell Resistance: no
"""
You create a low-cresting wave of water that carries the target along the surface of water or the ground. When moving across level ground, the target's speed increases by 10 feet. If going downhill, speed increases by 20 feet instead, but slipstream provides no movement bonus when going uphill. While swimming, the slipstream increases the target's swim speed by 20 feet-if the target does not have a swim speed, this spell grants a swim speed of 20 ft.
Source: APG
! Small Air Elemental
|N Small outsider (air, elemental, extraplanar) |
|''Init'' +4 ''Senses'' [[Darkvision]] 60 ft ''Perception'' +4|
|!Defense |
|''AC'' 17, touch 14, flat-footed 14 |
|''hp'' 13 (2d10+2) |
|''Fort'' +4, ''Ref'' +6, ''Will'' +0 |
|''Immunities'' [[Elemental Traits|Elemental]] |
|!Offense |
|''Speed'' fly 100 ft. (perfect) |
|''Melee'' slam +6 (1d4+1) |
|''Special Attacks'' [[Whirlwind]] (DC 12, 10-20 ft.) |
|!Statistics |
|''Str'' 12, ''Dex'' 17, ''Con'' 12, ''Int'' 4, ''Wis'' 11, ''Cha'' 11 |
|''Base Attack'' +2, ''CMB'' +4 , ''CMD'' 15 |
|''Feats'' Flyby Attack, Improved InitiativeB, Weapon FinesseB |
|''Skills'' Acrobatics +7, Escape Artist +7, Fly +17, Knowledge (planes) +1, Perception +4, Stealth +11 |
|''Languages'' Auran |
|!Special Abilities |
|!''Air Mastery'' (Ex) |
|Airborne creatures take a –1 penalty on attack and damage rolls against an air elemental. |
Air elementals are fast, flying creatures made of living air. Primitive and territorial, they resent being summoned or doing the bidding of mortals, and much prefer to spend their time on the Plane of Air, swooping and racing through the endless skies. An air elemental prefers to attack flying or otherwise airbone targets, not only because its mastery over flight gives it a slight advantage, but also because it detests the thought of having to touch the ground. An air elemental can move underwater, and although it is an elemental and thus runs no risk of drowning, it has no ranks in Swim and loses much of its speed and mobility when underwater. A small air elemental is 4 feet long and weighs 1 pound.
! Small Earth Elemental
|N Small outsider (earth, elemental, extraplanar) |
|''Init'' +4 ''Senses'' [[Darkvision]] 60 ft, [[Tremorsense]] 60 ft ''Perception'' +4|
|!Defense |
|''AC'' 17, touch 10, flat-footed 17 |
|''hp'' 13 (2d10+2) |
|''Fort'' +4, ''Ref'' -1, ''Will'' +3 |
|''Immunities'' [[Elemental Traits|Elemental]] |
|!Offense |
|''Speed'' 20 ft., burrow 20 ft., earth glide |
|''Melee'' slam +6 (1d6+4) |
|''Special Attacks'' [[Earth Mastery]] |
|!Statistics |
|''Str'' 16, ''Dex'' 8, ''Con'' 13, ''Int'' 4, ''Wis'' 11, ''Cha'' 11 |
|''Base Attack'' +2, ''CMB'' +4 , ''CMD'' 13 |
|''Feats'' Improved Bull RushB, Power Attack |
|''Skills'' Appraise +1, Climb +7, Knowledge (dungeoneering) +1, Knowledge (planes) +1, Perception +4, Stealth +7 |
|''Languages'' Terran |
|!Special Abilities |
|!''Earth Glide'' (Ex) |
|A burrowing earth elemental can pass through stone, dirt, or almost any other sort of earth except metal as easily as a fish swims through water. If protected against fire damage, it can even glide through lava. Its burrowing leaves behind no tunnel or hole, nor does it create any ripple or other sign of its presence. A move earth spell cast on an area containing a burrowing earth elemental flings the elemental back 30 feet, stunningthe creature for 1 round unless it succeeds on a DC 15 Fortitude save. |
|!''Earth Mastery'' (Ex) |
|An earth elemental gains a +1 bonus on attack and damage rolls if both it and its foe are touching the ground. If an opponent is airborne or waterborne, the elemental takes a –4 penalty on attack and damage rolls. These modifiers apply to bull rush and overrun maneuvers, whether the elemental is initiating or resisting these kinds of attacks. (These modifiers are not included in the statistics block.) |
Earth elementals are plodding, stubborn creatures made of living stone or earth. When utterly still, they resemble a heap of stone or a small hill. When an earth elemental lumbers into action, its actual appearance can vary, although its statistics remain identical to other elementals of its size. Most earth elementals look like terrestrial animals made out of rock, earth, or even crystal, with glowing gemstones for eyes. Larger earth elementals often have a stony humanoid appearance. Bits of vegetation frequently grow in the soil that makes up parts of an earth elemental’s body.
<$list filter="[tag[Elemental]tag[Small]sort[title]]" >
</$list>
! Small Fire Elemental
|N Small outsider (elemental, extraplanar, fire) |
|''Init'' +4 ''Senses'' [[Darkvision]] 60 ft ''Perception'' +4|
|!Defense |
|''AC'' 16, touch 13, flat-footed 14 |
|''hp'' 11 (2d10) |
|''Fort'' +3, ''Ref'' +4, ''Will'' +0 |
|''Immunities'' [[Elemental Traits|Elemental]], Fire |
|''Racial Modifiers'' Vulnerability to Cold |
|!Offense |
|''Speed'' 50 ft. |
|''Melee'' slam +4 (1d4 plus burn) |
|''Special Attacks'' [[Burn]] (1d4, DC 11) |
|!Statistics |
|''Str'' 10, ''Dex'' 13, ''Con'' 10, ''Int'' 4, ''Wis'' 11, ''Cha'' 11 |
|''Base Attack'' +2, ''CMB'' +2 , ''CMD'' 12 |
|''Feats'' Dodge, Improved InitiativeB, Weapon FinesseB |
|''Skills'' Acrobatics +5, Climb +4, Escape Artist +5, Intimidate +4, Knowledge (planes) +1, Perception +4 |
|''Languages'' Ignan |
|!Special Abilities |
|!''Burn'' (Ex) |
|A fire elemental deals fire damage in addition to damage dealt on a successful hit in melee. Those affected by the burn ability must also succeed on a Reflex save or catch fire, taking the listed damage for an additional 1d4 rounds at the start of its turn. A burning creature can attempt a new save as a full-round action. Dropping and rolling on the ground grants a +4 bonus on this save. Creatures that hit a burning creature with natural weapons or unarmed attacks take fire damage as though hit by the burning creature and must make a Reflex save to avoid catching on fire. See Burn for more details. |
Fire elementals are quick, cruel creatures of living flame. They enjoy frightening beings weaker than themselves, and terrorizing any creature they can set on fire. Fire elementals vary in appearance—they usually manifest as coiling serpentine forms made of smoke and flame, but some fire elementals take on shapes more akin to humans, demons, or other monsters in order to increase the terror of their sudden appearance. Features on a fire elemental’s body are made by darker bits of flame or patches of semi-stable smoke, ash, and cinders. A small fire elemental is 4 feet long and weighs 2 pounds
! Small Ice Elemental
|N Small outsider (air, cold, elemental, extraplanar, water) |
|''Init'' +4 ''Senses'' [[Darkvision]] 60 ft, [[Snow Vision]] ''Perception'' +5|
|!Defense |
|''AC'' 16, touch 10, flat-footed 16 |
|''hp'' 13 (2d10+2) |
|''Fort'' +4, ''Ref'' +2, ''Will'' +0 |
|''Immunities'' [[Elemental Traits|Elemental]], Cold |
|''Racial Modifiers'' Vulnerability to Fire |
|!Offense |
|''Speed'' 20 ft., burrow (ice and snow only) 20 ft., swim 60 ft. |
|''Melee'' slam +4 (1d4+1 plus 1d3 cold) |
|''Special Attacks'' [[Numbing Cold]] (DC 12) |
|!Statistics |
|''Str'' 12, ''Dex'' 8, ''Con'' 13, ''Int'' 4, ''Wis'' 11, ''Cha'' 11 |
|''Base Attack'' +2, ''CMB'' +2 , ''CMD'' 11 |
|''Feats'' Power Attack |
|''Skills'' Knowledge (planes) +2, Perception +5, Stealth +8, Swim +9 |
|''Languages'' Aquan |
|''SQ'' ice glide, icewalking |
|!Special Abilities |
|!''Ice Glide'' (Ex) |
|A burrowing ice elemental can pass through nonmagical ice and snow as easily as a fish swims through water. Its burrowing leaves behind no tunnel or hole, nor does it create any ripple or other sign of its presence. A control water spell cast on an area containing a burrowing ice elemental flings the elemental back 30 feet, stunning the creature for 1 round unless it succeeds on a DC 15 Fortitude save. |
|!''Icewalking'' (Ex) |
|This ability works like the spider climb spell, but the surfaces the elemental climbs must be icy. The elemental can move across icy surfaces without penalty and does not need to make Acrobatics checks to run or charge on ice. |
|!''Numbing Cold'' (Ex) |
|When an ice elemental deals cold damage to a creature, that creature must succeed on a Fortitude save or be staggered for 1 round. The save DC is listed in the elemental’s stat block and is Constitution-based. |
|!''Snow Vision'' (Ex) |
|An ice elemental can see perfectly well in snowy conditions and does not take any penalties on Perception checks while in snow. |
Ice elementals are creatures made of animated snow and ice. They form in especially cold parts of the Plane of Water and along its border with the Plane of Air, where giant icebergs careen off of world-high waterfalls into the open sky. Ice elementals vary in their exact appearance.
! Small Lightning Elemental
|N Small outsider (air, elemental, extraplanar) |
|''Init'' +4 ''Senses'' [[Darkvision]] 60 ft ''Perception'' +5|
|!Defense |
|''AC'' 14, touch 13, flat-footed 12 |
|''hp'' 11 (2d10) |
|''Fort'' +3, ''Ref'' +5, ''Will'' +0 |
|''Immunities'' [[Elemental Traits|Elemental]], Electricity |
|!Offense |
|''Speed'' fly 100 ft. (perfect) |
|''Melee'' slam +5 (1d4 plus 1d3 electricity) |
|!Statistics |
|''Str'' 10, ''Dex'' 15, ''Con'' 10, ''Int'' 4, ''Wis'' 11, ''Cha'' 11 |
|''Base Attack'' +2, ''CMB'' +3 , ''CMD'' 13 |
|''Feats'' Improved Initiative, Weapon FinesseB |
|''Skills'' Acrobatics +7, Escape Artist +6, Fly +12, Knowledge (planes) +1, Perception +5 |
|''Languages'' Auran |
|!Special Abilities |
|!''Metal Mastery'' (Ex) |
|A lightning elemental gains a +3 bonus on attack rolls if its opponent is wearing metal armor, is wielding a metal weapon, or is made of metal (such as an iron golem). |
|!''Spark Leap'' (Ex) |
|A lightning elemental gains a +10 bonus on bull rush, disarm, overrun, and trip attacks when it charges a creature against whom its metal mastery ability applies. |
Though most think of the Plane of Air as a vast expanse of clear sky, that plane also holds the power of the storm, including monstrous hurricanes larger than entire worlds and thunderstorms whose peals and claps can shatter stone. Whether lightning elementals are the by-product of common air elementals spending too much time near these electrically charged storms or are merely calved off like forgotten flurries, they are aggressive and almost suicidal in their willingness to leap into battle. They particularly enjoy attacking creatures that are made of metal and creatures that wear metal armor or wield metal weapons.
! Small Magma Elemental
|N Small outsider (earth, elemental, extraplanar, fire) |
|''Init'' +4 ''Senses'' [[Darkvision]] 60 ft ''Perception'' +5|
|!Defense |
|''AC'' 15, touch 10, flat-footed 15 |
|''hp'' 11 (2d10) |
|''Fort'' +3, ''Ref'' +2, ''Will'' +0 |
|''Immunities'' [[Elemental Traits|Elemental]], Fire |
|''Racial Modifiers'' Vulnerability to Cold |
|!Offense |
|''Speed'' 20 ft., burrow 20 ft. |
|''Melee'' slam +3 (1d3 plus burn) |
|''Special Attacks'' [[Burn]] (1d4, DC 9), [[Lava Puddle]] |
|!Statistics |
|''Str'' 10, ''Dex'' 8, ''Con'' 11, ''Int'' 4, ''Wis'' 11, ''Cha'' 11 |
|''Base Attack'' +2, ''CMB'' +1 , ''CMD'' 10 |
|''Feats'' Improved Initiative |
|''Skills'' Knowledge (dungeoneering) +2, Perception +5, Stealth +8 |
|''Languages'' Ignan |
|''SQ'' earth glide |
|!Special Abilities |
|!''Burn'' (Ex) |
|A magma elemental deals fire damage in addition to damage dealt on a successful hit in melee. Those affected by the burn ability must also succeed on a Reflex save or catch fire, taking the listed damage for an additional 1d4 rounds at the start of its turn. A burning creature can attempt a new save as a full-round action. Dropping and rolling on the ground grants a +4 bonus on this save. Creatures that hit a burning creature with natural weapons or unarmed attacks take fire damage as though hit by the burning creature and must make a Reflex save to avoid catching on fire. See Burn for more details. A magma elemental’s burn DC includes a –2 racial penalty, as their fires don’t burn quite as hot as true elemental flames. |
|!''Earth Glide'' (Ex) |
|A burrowing magma elemental can pass through stone, dirt, lava, or almost any other sort of earth except metal as easily as a fish swims through water. Its burrowing leaves behind no tunnel or hole, nor does it create any ripple, though the area it passes through feels warm for 1 round afterward and often retains a strangely smooth texture, as if the stone had been polished. A move earth spell cast on an area containing a burrowing magma elemental flings the elemental back 30 feet, stunning the creature for 1 round unless it succeeds on a DC 15 Fortitude save. |
|!''Lava Puddle'' (Ex) |
|Once per day as a full-round action, a magma elemental can vomit forth a puddle of lava that fills its space to a depth of 2–3 inches and counts as difficult terrain. Any creature that moves through this puddle of lava takes 2d6 points of fire damage. This damage continues for 1d3 rounds after the creature leaves the lava pool, although then it only inflicts 1d6 points of fire damage per round. The lava puddle solidifies and is safe to touch after a number of rounds equal to the elemental’s Hit Dice. At the GM’s discretion, this puddle of lava could start secondary fires. |
In the border areas between the Plane of Earth and Plane of Fire, volcanoes and continent-sized lava flows are commonplace. Elementals in this area tend to have aspects of both planes, and the typical sort is the magma elemental, an earth elemental with a core of liquid fire. Magma elementals generally have a somewhat feral or bestial appearance.
! Small Mud Elemental
|N Small outsider (earth, elemental, extraplanar, water) |
|''Init'' +4 ''Senses'' [[Darkvision]] 60 ft, [[Tremorsense]] 60 ft ''Perception'' +5|
|!Defense |
|''AC'' 16, touch 10, flat-footed 16 |
|''hp'' 13 (2d10+2) |
|''Fort'' +4, ''Ref'' +2, ''Will'' +0 |
|''Immunities'' [[Elemental Traits|Elemental]], Acid |
|!Offense |
|''Speed'' 20 ft., burrow 10 ft., swim 30 ft. |
|''Melee'' slam +5 (1d4+3 plus entrap) |
|''Special Attacks'' [[Entrap]] (DC 12, 10 minutes, hardness 5, hp 5) |
|!Statistics |
|''Str'' 14, ''Dex'' 8, ''Con'' 13, ''Int'' 4, ''Wis'' 11, ''Cha'' 11 |
|''Base Attack'' +2, ''CMB'' +3 , ''CMD'' 12 |
|''Feats'' Improved Bull RushB, Power Attack |
|''Skills'' Climb +6, Escape Artist +3, Knowledge (planes) +1, Perception +5, Stealth +7, Swim +10 |
|''Languages'' Terran |
|!Special Abilities |
|!''Earth Glide'' (Ex) |
|A burrowing mud elemental can pass through dirt, gravel, or other loose or porous solid matter as easily as a fish swims through water. It cannot use this ability to pass through a solid barrier such as a stone or brick wall. Its burrowing leaves behind no tunnel or hole, nor does it create any ripple or other sign of its presence. A move earth spell cast on an area containing a burrowing mud elemental flings the elemental back 30 feet, stunning the creature for 1 round unless it succeeds on a DC 15 Fortitude save. |
|!''Entrap'' (Ex) |
|The mud from an elemental’s entrap ability can be washed away in 1d3 rounds of immersion in water. |
Where the Plane of Earth borders the Plane of Water, a mixing of the fundamental elements occurs—it is in this borderland that the mud elementals dwell. Scorned by earth and water elementals, mud elementals usually look like vaguely recognizable blobs of mud in the shape of a Material Plane creature, whether a humanoid, an animal, or even an immense insect. The exact density of their muddy bodies varies—some might be composed of silty water, while others are thick, like river clay. Large and powerful mud elementals tend to have worm-like, reptilian, or frog-like forms.
! Small Water Elemental
|N Small outsider (elemental, extraplanar, water) |
|''Init'' +4 ''Senses'' [[Darkvision]] 60 ft ''Perception'' +4|
|!Defense |
|''AC'' 17, touch 11, flat-footed 17 |
|''hp'' 13 (2d10+2) |
|''Fort'' +4, ''Ref'' +3, ''Will'' +0 |
|''Immunities'' [[Elemental Traits|Elemental]] |
|!Offense |
|''Speed'' 20 ft., swim 90 ft. |
|''Melee'' slam +5 (1d6+3) |
|''Special Attacks'' [[Drench]], [[Vortex]] (DC 13, 10–20 ft.), [[Water Mastery]] |
|!Statistics |
|''Str'' 14, ''Dex'' 10, ''Con'' 13, ''Int'' 4, ''Wis'' 11, ''Cha'' 11 |
|''Base Attack'' +2, ''CMB'' +3 , ''CMD'' 13 |
|''Feats'' Power Attack |
|''Skills'' Acrobatics +4, Escape Artist +4, Knowledge (planes) +1, Perception +4, Stealth +8, Swim +14 |
|''Languages'' Aquan |
|!Special Abilities |
|!''Drench'' (Ex) |
|The elemental’s touch puts out non-magical flames of Large size or smaller. The creature can dispel magical fire it touches as dispel magic (caster level equals elemental’s HD). |
|!''Vortex'' (Ex) |
|A water elemental can create a whirlpool as a standard action, at will. This ability functions identically to the [[Whirlwind]] special attack, but can only form underwater and cannot leave the water. |
|!''Water Mastery'' (Ex) |
|A water elemental gains a +1 bonus on attack and damage rolls if both it and its opponent are touching water. If the opponent or the elemental is touching the ground, the elemental takes a –4 penalty on attack and damage rolls. These modifiers apply to bull rush and overrun maneuvers, whether the elemental is initiating or resisting these kinds of attacks. |
Water elementals are patient, relentless creatures made of living fresh or salt water. They prefer to hide or drag their opponents into the water to gain an advantage. As with other elementals, all water elementals have their own unique shapes and appearances. Most appear as wave-like creatures with vaguely humanoid faces and smaller wave “arms” to either side. Another common form is that of any aquatic creature, such as a shark or octopus, but made entirely out of water. A small water elemental is 4 feet long and weighs 34 pounds.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Snare
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
3 rounds V, S, DF
Range: touch
Targets: touched nonmagical circle of vine, rope, or thong with a 2 ft. diameter + 2 ft./level
Duration: Until triggered or broken
Saving Throw: none Spell Resistance: no
"""
This spell enables you to make a snare that functions as a magic trap. The snare can be made from any supple vine, a thong, or a rope. When you cast snare upon it, the cordlike object blends with its surroundings (DC 23 Perception check for a character with the trapfinding ability to locate). One end of the snare is tied in a loop that contracts around one or more of the limbs of any creature stepping inside the circle. If a strong and supple tree is nearby, the snare can be fastened to it. The spell causes the tree to bend, straightening when the loop is triggered, dealing 1d6 points of damage to the creature trapped and lifting it off the ground by the trapped limb or limbs. If no such tree is available, the cordlike object tightens around the creature, dealing no damage but causing it to be entangled. The snare is magical. To escape, a trapped creature must make a DC 23 Escape Artist check or a DC 23 Strength check that is a full-round action. The snare has AC 7 and 5 hit points. A successful escape from the snare breaks the loop and ends the spell.
Source: PFRPG Core
Sneak (DC 15): The animal can be ordered to make Stealth checks in order to stay hidden and to continue using Stealth even when circumstances or its natural instincts would normally cause it to abandon secrecy.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Snow Shape
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M/DF (a miniature shovel)
Range: touch
Targets: snow or snow-sculpted object touched, up to 5 cubic ft. + 1 cubic ft./level
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
In frozen northern lands, where the earth may be hidden beneath heavy drifts of snow, Ulfen druids developed a variation of stone shape that other spellcasters have since learned. You can form a mass of snow into any shape that suits your purpose, as per the spell stone shape. While it's possible to make crude objects with snow shape, most fine details aren't possible. However, a successful Craft (weapons) check allows you to create a bladed weapon from the snow. The DC of this check is equal to the DC listed with the Craft (weapons) skill (Core Rulebook 93). You must be the one to make the Craft check and must do so at the time of casting this spell. A failed check means that the spell is cast normally but the weapon created is malformed and useless. This spell can only be used to craft weapons and not more precise tools or elaborate armors. Once you create the item with this spell, it solidifies into super-hard ice, gaining a hardness of 5 and 10 hit points per inch of thickness. This weapon takes double damage from fire. Anyone using an ice weapon takes a -2 penalty on attacks due to the slippery, unwieldy nature of the weapon, but the weapon deals 1 point of cold damage in addition to its normal damage. A weapon created by this spell lasts for 24 hours before melting into uselessness.
Source: Humans Of Golarion
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Snowball
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
evocation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Effect: one ball of ice and snow
Duration: instantaneous
Saving Throw: none Spell Resistance: yes
"""
You throw a ball of elemental ice and snow at a single target as a ranged touch attack. The snowball deals 1d6 points of cold damage per caster level you have (maximum 5d6).
Source: Ultimate Wilderness
!! [[Snowcasting]]
[General]
"""
You add ice or snow to your spell's components to make them more powerful.
''Prerequisite''
CON 13,
Required for Cold Spell Specialization (Fr) , Frostfell Prodigy (Fr) , Frozen Magic (Fr) , Icy Calling (Fr) ,
''Benefit''
If you add a handful of snow or ice as an additional material component to a spell when you cast it, the spell gains the cold descriptor. This does not actually change the nature of the spell you cast; a fireball cast with this feat still deals fire damage, but since it also carries the cold descriptor, it can be augmented by a number of feats listed in this chapter, such as Cold Focus and Frozen Magic. If you add a handful of snow or ice as an additional material component to a spell when you cast it and that spell already has the cold descriptor, you increase the effective level of the spell being cast by +1. Adding this additional material component requires you to spend a move action immediately before the spell is cast to gather fresh snow or ice from the surrounding environment. This snow or ice can be magically created by a conjuration spell, but no other ice manifested by a spell will do. You may take no other action between gathering the snow or ice and casting the spell.
Source: Frostburn (pg 50)
Taken: Human Bonus Feat
"""
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Snowshoes
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: touch
Targets: creature touched
Duration: 1 hour/level (D)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The affected creature can walk lightly over ice and snow without having its speed reduced. The affected creature gains a 10-foot enhancement bonus to speed and is not required to make a Balance check or Reflex save to walk on ice and snow without slipping and falling, to avoid cracking ice it walks over, or to avoid falling through cracked ice. In addition, the affected creature does not leave a more readily discernible trail through ice and snow than it does on solid ground, denying trackers potential bonuses to follow the affected creature's path.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Snowsight
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: touch
Targets: creature touched
Duration: 1 hour/level (D)
Saving Throw: none Spell Resistance: yes (harmless)
"""
The subject gains the ability to see to the normal limits of its vision even in whiteout conditions, and ignores all penalties due to snow glare and snow blindness. Snowsight is no better than normal vision. During daylight, this usually means the subject can see to the horizon; at night, vision is restricted to ambient light or darkvision as appropriate for the subject creature. Snowsight does not grant creatures the ability to see in darkness.
Source: Frostburn
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Soften Earth and Stone
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Area: 10-ft. square/level; see text
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
When this spell is cast, all natural, undressed earth or stone in the spell's area is softened. Wet earth becomes thick mud, dry earth becomes loose sand or dirt, and stone becomes soft clay that is easily molded or chopped. You affect a 10-foot square area to a depth of 1 to 4 feet, depending on the toughness or resilience of the ground at that spot. Magical, enchanted, dressed, or worked stone cannot be affected. Earth or stone creatures are not affected. A creature in mud must succeed on a Reflex save or be caught for 1d2 rounds and unable to move, attack, or cast spells. A creature that succeeds on its save can move through the mud at half speed, and it can't run or charge. Loose dirt is not as troublesome as mud, but all creatures in the area can move at only half their normal speed and can't run or charge over the surface. Stone softened into clay does not hinder movement, but it does allow characters to cut, shape, or excavate areas they may not have been able to affect before. While this spell does not affect dressed or worked stone, cavern ceilings or vertical surfaces such as cliff faces can be affected. Usually, this causes a moderate collapse or landslide as the loosened material peels away from the face of the wall or roof and falls (treat as a cave-in with no bury zone, see Chapter 13). A moderate amount of structural damage can be dealt to a manufactured structure by softening the ground beneath it, causing it to settle. However, most well-built structures will only be damaged by this spell, not destroyed.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Soothing Mud
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (healing) [earth, water]
1 standard action V, S, DF
Range: medium (100 ft. + 10 ft./level)
Area: dust, earth, sand, or water in one 5-ft. square/level
Duration: 1 round/level (D)
Saving Throw: none Spell Resistance: no
"""
You create an area of healing mud. Water, earth, sand, and dust thicken into a wet mud. The mud functions as difficult terrain and does not sink if created in water unless weighed down by more than 100 pounds per caster level you have. Each round a creature begins its turn in or on the mud, the mud restores 1 hit point to it; this healing is unaffected by effects that increase a creature's healing. A creature that rests partially or completely submerged in this mud for 1 full minute is also healed of 1d4 points of ability damage to an ability score of its choice. A creature can be healed of ability damage this way only once per day.
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Soothing Word
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (healing)
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: 1 creature
Duration: instantaneous
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The target of this spell causes several conditions that he suffers from to be lessened in severity one step. If he is nauseated, he is instead sickened. If he is stunned, he is instead dazed. If he is exhausted, he is fatigued. If he is frightened, he is shaken. If he is paralyzed, he is staggered. The duration of the effect is unchanged; the effect is simply reduced to the lesser version. This spell has no effect on conditions not listed above.
Source: Condition Cards
/9j/4AAQSkZJRgABAQEASABIAAD/4QBARXhpZgAATU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAA8KADAAQAAAABAAABaAAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/+IHuElDQ19QUk9GSUxFAAEBAAAHqGFwcGwCIAAAbW50clJHQiBYWVogB9kAAgAZAAsAGgALYWNzcEFQUEwAAAAAYXBwbAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALZGVzYwAAAQgAAABvZHNjbQAAAXgAAAVsY3BydAAABuQAAAA4d3RwdAAABxwAAAAUclhZWgAABzAAAAAUZ1hZWgAAB0QAAAAUYlhZWgAAB1gAAAAUclRSQwAAB2wAAAAOY2hhZAAAB3wAAAAsYlRSQwAAB2wAAAAOZ1RSQwAAB2wAAAAOZGVzYwAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmlsZQAAAAAAAAAAAAAAFEdlbmVyaWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAAAAAAHgAAAAxza1NLAAAAKAAAAXhockhSAAAAKAAAAaBjYUVTAAAAJAAAAchwdEJSAAAAJgAAAex1a1VBAAAAKgAAAhJmckZVAAAAKAAAAjx6aFRXAAAAFgAAAmRpdElUAAAAKAAAAnpuYk5PAAAAJgAAAqJrb0tSAAAAFgAAAshjc0NaAAAAIgAAAt5oZUlMAAAAHgAAAwBkZURFAAAALAAAAx5odUhVAAAAKAAAA0pzdlNFAAAAJgAAAqJ6aENOAAAAFgAAA3JqYUpQAAAAGgAAA4hyb1JPAAAAJAAAA6JlbEdSAAAAIgAAA8ZwdFBPAAAAJgAAA+hubE5MAAAAKAAABA5lc0VTAAAAJgAAA+h0aFRIAAAAJAAABDZ0clRSAAAAIgAABFpmaUZJAAAAKAAABHxwbFBMAAAALAAABKRydVJVAAAAIgAABNBhckVHAAAAJgAABPJlblVTAAAAJgAABRhkYURLAAAALgAABT4AVgFhAGUAbwBiAGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBsAEcAZQBuAGUAcgBpAQ0AawBpACAAUgBHAEIAIABwAHIAbwBmAGkAbABQAGUAcgBmAGkAbAAgAFIARwBCACAAZwBlAG4A6AByAGkAYwBQAGUAcgBmAGkAbAAgAFIARwBCACAARwBlAG4A6QByAGkAYwBvBBcEMAQzBDAEOwRMBD0EOAQ5ACAEPwRABD4ERAQwBDkEOwAgAFIARwBCAFAAcgBvAGYAaQBsACAAZwDpAG4A6QByAGkAcQB1AGUAIABSAFYAQpAadSgAIABSAEcAQgAggnJfaWPPj/AAUAByAG8AZgBpAGwAbwAgAFIARwBCACAAZwBlAG4AZQByAGkAYwBvAEcAZQBuAGUAcgBpAHMAawAgAFIARwBCAC0AcAByAG8AZgBpAGzHfLwYACAAUgBHAEIAINUEuFzTDMd8AE8AYgBlAGMAbgD9ACAAUgBHAEIAIABwAHIAbwBmAGkAbAXkBegF1QXkBdkF3AAgAFIARwBCACAF2wXcBdwF2QBBAGwAbABnAGUAbQBlAGkAbgBlAHMAIABSAEcAQgAtAFAAcgBvAGYAaQBsAMEAbAB0AGEAbADhAG4AbwBzACAAUgBHAEIAIABwAHIAbwBmAGkAbGZukBoAIABSAEcAQgAgY8+P8GWHTvZOAIIsACAAUgBHAEIAIDDXMO0w1TChMKQw6wBQAHIAbwBmAGkAbAAgAFIARwBCACAAZwBlAG4AZQByAGkAYwOTA7UDvQO5A7oDzAAgA8ADwQO/A8YDrwO7ACAAUgBHAEIAUABlAHIAZgBpAGwAIABSAEcAQgAgAGcAZQBuAOkAcgBpAGMAbwBBAGwAZwBlAG0AZQBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBlAGwOQg4bDiMORA4fDiUOTAAgAFIARwBCACAOFw4xDkgOJw5EDhsARwBlAG4AZQBsACAAUgBHAEIAIABQAHIAbwBmAGkAbABpAFkAbABlAGkAbgBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBpAGwAaQBVAG4AaQB3AGUAcgBzAGEAbABuAHkAIABwAHIAbwBmAGkAbAAgAFIARwBCBB4EMQRJBDgEOQAgBD8EQAQ+BEQEOAQ7BEwAIABSAEcAQgZFBkQGQQAgBioGOQYxBkoGQQAgAFIARwBCACAGJwZEBjkGJwZFAEcAZQBuAGUAcgBpAGMAIABSAEcAQgAgAFAAcgBvAGYAaQBsAGUARwBlAG4AZQByAGUAbAAgAFIARwBCAC0AYgBlAHMAawByAGkAdgBlAGwAcwBldGV4dAAAAABDb3B5cmlnaHQgMjAwNyBBcHBsZSBJbmMuLCBhbGwgcmlnaHRzIHJlc2VydmVkLgBYWVogAAAAAAAA81IAAQAAAAEWz1hZWiAAAAAAAAB0TQAAPe4AAAPQWFlaIAAAAAAAAFp1AACscwAAFzRYWVogAAAAAAAAKBoAABWfAAC4NmN1cnYAAAAAAAAAAQHNAABzZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbP/AABEIAWgA8AMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDAAICAgICAgMCAgMEAwMDBAUEBAQEBQcFBQUFBQcIBwcHBwcHCAgICAgICAgKCgoKCgoLCwsLCw0NDQ0NDQ0NDQ3/2wBDAQICAgMDAwYDAwYNCQcJDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ3/3QAEAA//2gAMAwEAAhEDEQA/AP2Iooor/AM/VAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Q/Yiiiiv8Az9UCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9H9iKKKK/wDP1QKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//0v2Iooor/AM/VAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//T/Yiiiiv8Az9UCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9T9iKKKK/wDP1QKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//1f2Iooor/AM/VAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//W/Yiiiiv8Az9UCiiigAooooAKKKKACiiigAooooAKKKKACivnP9oH9qf4Pfs26L9v+IOrBtTmjL2WiWW2bUrvqAViyBHHkEebIUj4xuLYB/KTV/8Agsf4tkkkGg/DTTrePcfLN3qktw23PG4JBCM464NfrHBXgfxpxXhfr2TYJyo7c8pRhF/4XNrmt1cbpPR6nBicyw1CXLUlr95+89Ffz+aF/wAFhvinFrcUviXwJ4futI3DzYLGW6trvb3KzSSTx5HoYufUdR+qfwG/bN+Cv7QHhzX/ABJ4dvLjRIPCtva3OtjXVjs0skuxLtZpvMaJkUwuGcNgcZxkV08a+A3G3C2GWNzTBv2Wl5Qamk21FKXK2022krqzbSTbFhs0w1d8sJa/cfWFFUtO1LTtYsotS0m6gvbSdd0U9vIssTr6q6EqR9DV2vyCcJRk4yVmj0AoooqQCiiigAooooAKKKKACiiigD//1/2Iooor/AM/VAooooAKKKKACiiigAooooAKKK8A/aD/AGl/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o+B+Aq0a2LmrV68Vpdq02papzfwxUW40115keTh8FWxdf6zilaPRf1/TOnooor+HT6UKKKKACiiigAooooAKKKKAP//U/Yiiiiv8Az9UCiiigAooooAKKKKACiiigAooooA+Bv2rP2APhl+0ndS+MNOuG8JeNjGFfVLaES299sACC9gym9lA2iVGVwOG3hVUfjn8Rf8Agmb+1R4EbzdK0S08X2pldBNoV0rsqKFKM0Nx5Evz5IwqttKnJwVJ/qFor9+8P/pJ8acJ4aGX0Ksa2HhpGFVOXKu0ZJxmkui5ml0VjysXk+Hryc2rPuj+K7xv8NPiD8NtSl0jx94c1Pw/dRSNEU1C1kgDMhIOx2ASRTjIZCVYcgkc1lW/hDxZd6OfEVpomozaUGZDfR2kr2oZfvDzgpTI7jPFf2uXtjZalayWOo28V1bTDbJDOiyRuvoysCCPqKZpumabo1hBpekWkFjZWyCOC2to1hhiQdFREAVQPQDFfu9L6cWIWGiqmUJ1b6tVWotdbL2bafq2eY+GlfSpp6f8E/kl+Df7HH7Qvxvv7GPwr4TvbHSr3LDW9XhlstLSNcZfznTMg5GBErsewODj9xf2c/8Agml8Gvg7/ZfifxyW8a+MdNu47+G9lMlvYWs0WCixWqyFZBG3zBpt5LAMFToP0ior8b8SPpQ8XcU03g8LL6ph3o402+aSfSVTSTVtGo8sX1TPQweSYeg+Z+8/P/IKKKK/m49gKKKKACiiigAooooAKKKKACiiigD/1f2Iooor/AM/VAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//W/Yiiiiv8Az9UCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9f9iKKKK/wDP1QKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//0P2Iooor/AM/VAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//R/Yiiiiv8Az9UCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9L9iKKKK/wDP1QKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//0/2Iooor/AM/VAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//U/Yiiiiv8Az9UCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9X9iKKKK/wDP1QKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//2Q==
/9j/4AAQSkZJRgABAQEASABIAAD/4QBARXhpZgAATU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAA8KADAAQAAAABAAABaAAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/+IHuElDQ19QUk9GSUxFAAEBAAAHqGFwcGwCIAAAbW50clJHQiBYWVogB9kAAgAZAAsAGgALYWNzcEFQUEwAAAAAYXBwbAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALZGVzYwAAAQgAAABvZHNjbQAAAXgAAAVsY3BydAAABuQAAAA4d3RwdAAABxwAAAAUclhZWgAABzAAAAAUZ1hZWgAAB0QAAAAUYlhZWgAAB1gAAAAUclRSQwAAB2wAAAAOY2hhZAAAB3wAAAAsYlRSQwAAB2wAAAAOZ1RSQwAAB2wAAAAOZGVzYwAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmlsZQAAAAAAAAAAAAAAFEdlbmVyaWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAAAAAAHgAAAAxza1NLAAAAKAAAAXhockhSAAAAKAAAAaBjYUVTAAAAJAAAAchwdEJSAAAAJgAAAex1a1VBAAAAKgAAAhJmckZVAAAAKAAAAjx6aFRXAAAAFgAAAmRpdElUAAAAKAAAAnpuYk5PAAAAJgAAAqJrb0tSAAAAFgAAAshjc0NaAAAAIgAAAt5oZUlMAAAAHgAAAwBkZURFAAAALAAAAx5odUhVAAAAKAAAA0pzdlNFAAAAJgAAAqJ6aENOAAAAFgAAA3JqYUpQAAAAGgAAA4hyb1JPAAAAJAAAA6JlbEdSAAAAIgAAA8ZwdFBPAAAAJgAAA+hubE5MAAAAKAAABA5lc0VTAAAAJgAAA+h0aFRIAAAAJAAABDZ0clRSAAAAIgAABFpmaUZJAAAAKAAABHxwbFBMAAAALAAABKRydVJVAAAAIgAABNBhckVHAAAAJgAABPJlblVTAAAAJgAABRhkYURLAAAALgAABT4AVgFhAGUAbwBiAGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBsAEcAZQBuAGUAcgBpAQ0AawBpACAAUgBHAEIAIABwAHIAbwBmAGkAbABQAGUAcgBmAGkAbAAgAFIARwBCACAAZwBlAG4A6AByAGkAYwBQAGUAcgBmAGkAbAAgAFIARwBCACAARwBlAG4A6QByAGkAYwBvBBcEMAQzBDAEOwRMBD0EOAQ5ACAEPwRABD4ERAQwBDkEOwAgAFIARwBCAFAAcgBvAGYAaQBsACAAZwDpAG4A6QByAGkAcQB1AGUAIABSAFYAQpAadSgAIABSAEcAQgAggnJfaWPPj/AAUAByAG8AZgBpAGwAbwAgAFIARwBCACAAZwBlAG4AZQByAGkAYwBvAEcAZQBuAGUAcgBpAHMAawAgAFIARwBCAC0AcAByAG8AZgBpAGzHfLwYACAAUgBHAEIAINUEuFzTDMd8AE8AYgBlAGMAbgD9ACAAUgBHAEIAIABwAHIAbwBmAGkAbAXkBegF1QXkBdkF3AAgAFIARwBCACAF2wXcBdwF2QBBAGwAbABnAGUAbQBlAGkAbgBlAHMAIABSAEcAQgAtAFAAcgBvAGYAaQBsAMEAbAB0AGEAbADhAG4AbwBzACAAUgBHAEIAIABwAHIAbwBmAGkAbGZukBoAIABSAEcAQgAgY8+P8GWHTvZOAIIsACAAUgBHAEIAIDDXMO0w1TChMKQw6wBQAHIAbwBmAGkAbAAgAFIARwBCACAAZwBlAG4AZQByAGkAYwOTA7UDvQO5A7oDzAAgA8ADwQO/A8YDrwO7ACAAUgBHAEIAUABlAHIAZgBpAGwAIABSAEcAQgAgAGcAZQBuAOkAcgBpAGMAbwBBAGwAZwBlAG0AZQBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBlAGwOQg4bDiMORA4fDiUOTAAgAFIARwBCACAOFw4xDkgOJw5EDhsARwBlAG4AZQBsACAAUgBHAEIAIABQAHIAbwBmAGkAbABpAFkAbABlAGkAbgBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBpAGwAaQBVAG4AaQB3AGUAcgBzAGEAbABuAHkAIABwAHIAbwBmAGkAbAAgAFIARwBCBB4EMQRJBDgEOQAgBD8EQAQ+BEQEOAQ7BEwAIABSAEcAQgZFBkQGQQAgBioGOQYxBkoGQQAgAFIARwBCACAGJwZEBjkGJwZFAEcAZQBuAGUAcgBpAGMAIABSAEcAQgAgAFAAcgBvAGYAaQBsAGUARwBlAG4AZQByAGUAbAAgAFIARwBCAC0AYgBlAHMAawByAGkAdgBlAGwAcwBldGV4dAAAAABDb3B5cmlnaHQgMjAwNyBBcHBsZSBJbmMuLCBhbGwgcmlnaHRzIHJlc2VydmVkLgBYWVogAAAAAAAA81IAAQAAAAEWz1hZWiAAAAAAAAB0TQAAPe4AAAPQWFlaIAAAAAAAAFp1AACscwAAFzRYWVogAAAAAAAAKBoAABWfAAC4NmN1cnYAAAAAAAAAAQHNAABzZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbP/AABEIAWgA8AMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDAAICAgICAgMCAgMEAwMDBAUEBAQEBQcFBQUFBQcIBwcHBwcHCAgICAgICAgKCgoKCgoLCwsLCw0NDQ0NDQ0NDQ3/2wBDAQICAgMDAwYDAwYNCQcJDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ3/3QAEAA//2gAMAwEAAhEDEQA/AP38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9D9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//R/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/0v38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9P9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//U/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/1f38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9b9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiuS8d+O/CHwy8Jan468earb6LoWkQG4vL26bbHGg4AAGWZ2JCoigs7EKoLEA/zb/tB/8ABYD45+KPGtxH+z/LB4N8J2cpS0kurG2vtRv0Vv8AW3H2lJoog4HEca5QHBdjyAD+nWiuQ+Hur3niDwD4a17UZRNd6lo9heTyqoQPLPAkjsFHCgsxOBwK6+gAooooAKKKKACiiigAooooAKKKKACiiigD/9f9/KKKKACiiigAooooAKKKKACiiigAooooAK+Hf24v20tK/Y38H6LqbeHbjxJrfiiW7g0q3Eot7ONrNYzJJczYZgB5ybUVSz8jK4LV9xVm6nouj61GkOs2NtfxxNvRbmFJlVsYyA4IBx3oA/i2/aN/bE+O/wC1FqCyfE7XM6RbzGez0HT0+zaXavggMsILNI6hiBJM8kgBIDAHFfP3hPw1qfjPxTo3g/RU8zUdd1C1020T+9cXcqwxj8XcV/UD/wAFbfh74al/Y+vdasNLs7WfQPEGk3sclvAkTDzXezYZRQcEXPI6dPQV/Mv8MZ/EVn8RvDF/4RsLrVNastXsruws7GF57me4tpllRIo4wzuxKcBQTQB/dR4Z0K28L+G9K8NWRLW+k2NtYxEjBMdtGsak/gorboooAKKKKACiiigAooooAKKKKACiiigAooooA//Q/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigD8v8A/gr14gXRv2N9R04kA694g0fTwD3Mcj3mB+FtX82H7OPxY8W/A/42+E/id4G0uLW9c0i8ZLXTZY3lF4byJ7V4VWP598kczKhXJDkEA4wf35/4LY6j5X7O/grSc/8AHz40huMev2fT71f/AGtX4W/sbSyw/tY/B94YmmY+NdDXavUK15ErN9FBLH2FAH9sNs88ltFJdRiKZkUyRq28I5A3KGwMgHjOBmp6KKACiiigAooooAKKKKACiiigAooooAKKKKAP/9H9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKAPxv/4LSeB/EOvfAHwr4y0qJp9O8L+Ic6oqLnyYr+EwxTseyLMFiP8AtSrX4Lfso/EHSPhX+0j8OfH/AIghE2maR4gs5LzOT5cEr+U8oA6tCrmRR3KgV/Uv/wAFJfO/4Yj+KXkI0jfYbDIUFjt/tG03HA7KuST2AJr+ST4UNpKfFLwc+vHGmLr+lm9P/TsLqPzev+xmgD+72iiigAooooAKKKKACiiigAooooAKKKKACiiigD//0v38ooooAKKKKACiiigAooooAKKKKACiiigAooooA+dP2s/H/wAM/hv+zx431/4upJceGLnSp9LurSBPMnu21JTbJBEDgb5GkADEgJy5ICkj+Nr4L+GdH8a/F/wR4P8AEN4un6ZrfiHS9Ou7pwSsUN1cxxOxwVOAG65GOuR1r+rD/gp94Z0HxJ+xd46k12/GnHRzYanZSMSFkvIbqNI4So+953mGNR2Zg38NfyU+C5pbbxjoNxbxNPLFqdm6RICzOyzIQoA5JJ4AFAH961FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/0/38ooooAKKKKACiiigAooooAKKKKACiiigAooooA/FX/gtrfapD8FfAGn25uBYXPiaV7nZu8gyRWknlCQj5d3zuUDc8MR0Nfi3+w+PhR/w1P8Pn+NEwt/DceqK++RikA1BFY2H2hh92H7WIt5Py4+/hNxH7Mf8ABbbUtXh+Evw90y01iGDTrjX7l73SvNjE91Klsfs04jP71orcearFfkDSpu+Ypj+cXTrObUdQttPtgWmupo4YwOpeRgoH5mgD+/CikAwAPSloAKKKKACiiigAooooAKKKKACiiigAooooA//U/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigD+dr/AILReCPHXiD4tfDjUdD0XUNT0+XQLm0heztpbgfa47pnlj/dq3zeW8ZA6kV8u/su/wDBMb9o74wa9pviDxhpt18NvC9vcRzS6hrMDQanIsTZxaWEgWYuSBteYRxYO4F8bT/WPRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/V/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/1v38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9f9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//Q/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/0f38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9L9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//T/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/1P38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9X9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//Z
/9j/4AAQSkZJRgABAQEASABIAAD/4QBARXhpZgAATU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAA8KADAAQAAAABAAABaAAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/+IHuElDQ19QUk9GSUxFAAEBAAAHqGFwcGwCIAAAbW50clJHQiBYWVogB9kAAgAZAAsAGgALYWNzcEFQUEwAAAAAYXBwbAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALZGVzYwAAAQgAAABvZHNjbQAAAXgAAAVsY3BydAAABuQAAAA4d3RwdAAABxwAAAAUclhZWgAABzAAAAAUZ1hZWgAAB0QAAAAUYlhZWgAAB1gAAAAUclRSQwAAB2wAAAAOY2hhZAAAB3wAAAAsYlRSQwAAB2wAAAAOZ1RSQwAAB2wAAAAOZGVzYwAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmlsZQAAAAAAAAAAAAAAFEdlbmVyaWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAAAAAAHgAAAAxza1NLAAAAKAAAAXhockhSAAAAKAAAAaBjYUVTAAAAJAAAAchwdEJSAAAAJgAAAex1a1VBAAAAKgAAAhJmckZVAAAAKAAAAjx6aFRXAAAAFgAAAmRpdElUAAAAKAAAAnpuYk5PAAAAJgAAAqJrb0tSAAAAFgAAAshjc0NaAAAAIgAAAt5oZUlMAAAAHgAAAwBkZURFAAAALAAAAx5odUhVAAAAKAAAA0pzdlNFAAAAJgAAAqJ6aENOAAAAFgAAA3JqYUpQAAAAGgAAA4hyb1JPAAAAJAAAA6JlbEdSAAAAIgAAA8ZwdFBPAAAAJgAAA+hubE5MAAAAKAAABA5lc0VTAAAAJgAAA+h0aFRIAAAAJAAABDZ0clRSAAAAIgAABFpmaUZJAAAAKAAABHxwbFBMAAAALAAABKRydVJVAAAAIgAABNBhckVHAAAAJgAABPJlblVTAAAAJgAABRhkYURLAAAALgAABT4AVgFhAGUAbwBiAGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBsAEcAZQBuAGUAcgBpAQ0AawBpACAAUgBHAEIAIABwAHIAbwBmAGkAbABQAGUAcgBmAGkAbAAgAFIARwBCACAAZwBlAG4A6AByAGkAYwBQAGUAcgBmAGkAbAAgAFIARwBCACAARwBlAG4A6QByAGkAYwBvBBcEMAQzBDAEOwRMBD0EOAQ5ACAEPwRABD4ERAQwBDkEOwAgAFIARwBCAFAAcgBvAGYAaQBsACAAZwDpAG4A6QByAGkAcQB1AGUAIABSAFYAQpAadSgAIABSAEcAQgAggnJfaWPPj/AAUAByAG8AZgBpAGwAbwAgAFIARwBCACAAZwBlAG4AZQByAGkAYwBvAEcAZQBuAGUAcgBpAHMAawAgAFIARwBCAC0AcAByAG8AZgBpAGzHfLwYACAAUgBHAEIAINUEuFzTDMd8AE8AYgBlAGMAbgD9ACAAUgBHAEIAIABwAHIAbwBmAGkAbAXkBegF1QXkBdkF3AAgAFIARwBCACAF2wXcBdwF2QBBAGwAbABnAGUAbQBlAGkAbgBlAHMAIABSAEcAQgAtAFAAcgBvAGYAaQBsAMEAbAB0AGEAbADhAG4AbwBzACAAUgBHAEIAIABwAHIAbwBmAGkAbGZukBoAIABSAEcAQgAgY8+P8GWHTvZOAIIsACAAUgBHAEIAIDDXMO0w1TChMKQw6wBQAHIAbwBmAGkAbAAgAFIARwBCACAAZwBlAG4AZQByAGkAYwOTA7UDvQO5A7oDzAAgA8ADwQO/A8YDrwO7ACAAUgBHAEIAUABlAHIAZgBpAGwAIABSAEcAQgAgAGcAZQBuAOkAcgBpAGMAbwBBAGwAZwBlAG0AZQBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBlAGwOQg4bDiMORA4fDiUOTAAgAFIARwBCACAOFw4xDkgOJw5EDhsARwBlAG4AZQBsACAAUgBHAEIAIABQAHIAbwBmAGkAbABpAFkAbABlAGkAbgBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBpAGwAaQBVAG4AaQB3AGUAcgBzAGEAbABuAHkAIABwAHIAbwBmAGkAbAAgAFIARwBCBB4EMQRJBDgEOQAgBD8EQAQ+BEQEOAQ7BEwAIABSAEcAQgZFBkQGQQAgBioGOQYxBkoGQQAgAFIARwBCACAGJwZEBjkGJwZFAEcAZQBuAGUAcgBpAGMAIABSAEcAQgAgAFAAcgBvAGYAaQBsAGUARwBlAG4AZQByAGUAbAAgAFIARwBCAC0AYgBlAHMAawByAGkAdgBlAGwAcwBldGV4dAAAAABDb3B5cmlnaHQgMjAwNyBBcHBsZSBJbmMuLCBhbGwgcmlnaHRzIHJlc2VydmVkLgBYWVogAAAAAAAA81IAAQAAAAEWz1hZWiAAAAAAAAB0TQAAPe4AAAPQWFlaIAAAAAAAAFp1AACscwAAFzRYWVogAAAAAAAAKBoAABWfAAC4NmN1cnYAAAAAAAAAAQHNAABzZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbP/AABEIAWgA8AMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDAAICAgICAgMCAgMEAwMDBAUEBAQEBQcFBQUFBQcIBwcHBwcHCAgICAgICAgKCgoKCgoLCwsLCw0NDQ0NDQ0NDQ3/2wBDAQICAgMDAwYDAwYNCQcJDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ3/3QAEAA//2gAMAwEAAhEDEQA/APguiiiv9qD+rAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Q+C6KKK/2oP6sCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9H4Looor/ag/qwKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//0vguiiiv9qD+rAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//T+C6KKK/2oP6sCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9T4Looor/ag/qwKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//1fguiiiv9qD+rAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//W+C6KKK/2oP6sCiiigAooooAKKKKACiiigAooooAKKKKACio5ZYoInnndY441LO7HCqo5JJPAAr5/8RfG14L5rfw3axTwRnBnuA37zHUqqlSB6EnJ9BXxXGviFkXCmHjXzqtycztGKTlKXe0VrZdXstr3aPJzXO8Hl0FPFStfZbt/I+hKKq2M7XVlb3LgBpokkIHQFlBOParVfY0qsakI1IbNX+89SMlJKS6hRRRWhQUUUUAFFFFABRRRQAUUUUAFFFFAH//X+C6KKK/2oP6sCiiigAooooAKKKKACiiigAooooAK5Pxb4x0rwfaR3Oo73knLCGKMZZyuM8nAAGRkk9+9dZWXqmiaRrSxpq1pFdrESUEqhtpPXH1rxuIaWaVMuq08mnGGIa92U03FO6u2lq9L26XtdNXRy42OIlQksK0p9G9UfJfi/wCJOueLEazYLZ2BbP2eI5LY6eY/BbHpgD2zXAQwyXE0dvCN0krBFA7sxwB+dfSnxV8I6Bp3hRr7S7CC1lguIiXiQKSrZUgkdskH8K+dNMujY6laXw6288co/wCAMG/pX+Z/i3kOdZbxRHD8U4v29ScYyc1eyg21aKaSSVnokkfgfEuDxdDMFTzGrzyaTv5N9O1tdD71srf7JZwWmd3kxJHn12AD+lWaKK/1FpUo04KnDZKy+R/QsYqKUUFFFFaDCiiigAooooAKKKKACiiigAooooA//9D4Looor/ag/qwKKKKACiiigAooooAKKKKACiiigAooooA8u+MM6w+CZ4z1nngjH1Db/wCS18x+F9Yi0DX7PV57cXUds5Zoj3ypXIzxlc5HuK+hfjjLt8M2UX9++Vv++Y5P8a+f/BwjbxZo6yqHVr63UqRkHLgdK/z88fMZXqeJuFjhpqM6aoKMmk1F87km09HZyvZ7n4txnVm8/pqDs1yJPezvfb5n3Mp3KGIK5AOD1FOoor/QJbH7SFFFFMAooooAKKKKACiiigAooooAKKKKAP/R+C6KKK/2oP6sCiiigAooooAKKKKACiiigAooooAKKKKAPEPjlBO+hafOi5iiuiHI7FkO38ODXhPgu7trHxXpV1ecQx3Ue4/3cnAY+wJBP0r6o+J+3/hBdV3AH5Iuvr5qV8gaRHFLqtlFOcRvcRK5PZS4B/Sv8/fpDYWWW+IuFzCg7znGjUs9k4zcUvR8ib9Wfi3G1N0M8p1oO7ajLXydv0Pvyiiiv9Aj9pCiiigAooooAKKKKACiiigAooooAKKKKAP/0vguiiiv9qD+rAooooAKKKKACiiigAooooAKKKKACiiigDnvFjaWPDmoLrUgis3gdJHPONwwuB3bdjaPXFfE2jWR1HV7LT1cRm5uIogxOMb2Azn8a+tvirYm98E322QIbcxz88BtjDK/iDx74r5CsJPJvreXJGyVGyOvDA1/B/0o8bfivL8PiKS9nCClzdZKU3dN9EuXTS6cm+qPx3xCq/8ACjRhOPupJ36u71Xytp6s/QGiiiv7wP2IKKKKACiiigAooooAKKKKACiiigAooooA/9P4Looor/ag/qwKKKKACiiigAooooAKKKKACiiigAooooA8T+OF7PBoFlZxSFUubk+Yo/jEa5APsCQfrivDfAlhYal4s0601KXyYWlDZzjc6DciZP8AeYAfjxzXt3xzkuV0PT40RTbvdEyMRlg4Q7AD2yN2fpXzNHv8xPLJD7htI6g9sV/nR4+ZksL4l/Wq8PawpexfJK6TSSk4p9nrdrq3p3/DuMq6p597Sa5lHl0fXZ29GfoTRRRX+i5+4hRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//1Pguiiiv9qD+rAooooAKKKKACiiigAooooAKKKKACiiigD5o+Ojzf2vpsZLeT9mZlGfl37znjpnGK888KeC/EXiO7ik063aOBXDNdSgrEuDnr/EfZcmvtG4srO8KG7ginMZJTzED7SeuMg4qwAAAAMAdBX808Q/Rzw2e8V1+IMyxkvZTlGXs4xtLSKVnNt2WnSN7dUz4LG8DU8ZmU8biKr5W07Ja6Jdfl2Fooor+lj70KKKKACiiigAooooAKKKKACiiigAooooA/9X4Looor/ag/qwKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//1vguiiiv9qD+rAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//X+C6KKK/2oP6sCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9D4Looor/ag/qwKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//0fguiiiv9qD+rAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//S+C6KKK/2oP6sCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9P4Looor/ag/qwKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//1Pguiiiv9qD+rAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//V+C6KKK/2oP6sCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9k=
/9j/4AAQSkZJRgABAQEASABIAAD/4QBARXhpZgAATU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAA8KADAAQAAAABAAABaAAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/+IHuElDQ19QUk9GSUxFAAEBAAAHqGFwcGwCIAAAbW50clJHQiBYWVogB9kAAgAZAAsAGgALYWNzcEFQUEwAAAAAYXBwbAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALZGVzYwAAAQgAAABvZHNjbQAAAXgAAAVsY3BydAAABuQAAAA4d3RwdAAABxwAAAAUclhZWgAABzAAAAAUZ1hZWgAAB0QAAAAUYlhZWgAAB1gAAAAUclRSQwAAB2wAAAAOY2hhZAAAB3wAAAAsYlRSQwAAB2wAAAAOZ1RSQwAAB2wAAAAOZGVzYwAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmlsZQAAAAAAAAAAAAAAFEdlbmVyaWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAAAAAAHgAAAAxza1NLAAAAKAAAAXhockhSAAAAKAAAAaBjYUVTAAAAJAAAAchwdEJSAAAAJgAAAex1a1VBAAAAKgAAAhJmckZVAAAAKAAAAjx6aFRXAAAAFgAAAmRpdElUAAAAKAAAAnpuYk5PAAAAJgAAAqJrb0tSAAAAFgAAAshjc0NaAAAAIgAAAt5oZUlMAAAAHgAAAwBkZURFAAAALAAAAx5odUhVAAAAKAAAA0pzdlNFAAAAJgAAAqJ6aENOAAAAFgAAA3JqYUpQAAAAGgAAA4hyb1JPAAAAJAAAA6JlbEdSAAAAIgAAA8ZwdFBPAAAAJgAAA+hubE5MAAAAKAAABA5lc0VTAAAAJgAAA+h0aFRIAAAAJAAABDZ0clRSAAAAIgAABFpmaUZJAAAAKAAABHxwbFBMAAAALAAABKRydVJVAAAAIgAABNBhckVHAAAAJgAABPJlblVTAAAAJgAABRhkYURLAAAALgAABT4AVgFhAGUAbwBiAGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBsAEcAZQBuAGUAcgBpAQ0AawBpACAAUgBHAEIAIABwAHIAbwBmAGkAbABQAGUAcgBmAGkAbAAgAFIARwBCACAAZwBlAG4A6AByAGkAYwBQAGUAcgBmAGkAbAAgAFIARwBCACAARwBlAG4A6QByAGkAYwBvBBcEMAQzBDAEOwRMBD0EOAQ5ACAEPwRABD4ERAQwBDkEOwAgAFIARwBCAFAAcgBvAGYAaQBsACAAZwDpAG4A6QByAGkAcQB1AGUAIABSAFYAQpAadSgAIABSAEcAQgAggnJfaWPPj/AAUAByAG8AZgBpAGwAbwAgAFIARwBCACAAZwBlAG4AZQByAGkAYwBvAEcAZQBuAGUAcgBpAHMAawAgAFIARwBCAC0AcAByAG8AZgBpAGzHfLwYACAAUgBHAEIAINUEuFzTDMd8AE8AYgBlAGMAbgD9ACAAUgBHAEIAIABwAHIAbwBmAGkAbAXkBegF1QXkBdkF3AAgAFIARwBCACAF2wXcBdwF2QBBAGwAbABnAGUAbQBlAGkAbgBlAHMAIABSAEcAQgAtAFAAcgBvAGYAaQBsAMEAbAB0AGEAbADhAG4AbwBzACAAUgBHAEIAIABwAHIAbwBmAGkAbGZukBoAIABSAEcAQgAgY8+P8GWHTvZOAIIsACAAUgBHAEIAIDDXMO0w1TChMKQw6wBQAHIAbwBmAGkAbAAgAFIARwBCACAAZwBlAG4AZQByAGkAYwOTA7UDvQO5A7oDzAAgA8ADwQO/A8YDrwO7ACAAUgBHAEIAUABlAHIAZgBpAGwAIABSAEcAQgAgAGcAZQBuAOkAcgBpAGMAbwBBAGwAZwBlAG0AZQBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBlAGwOQg4bDiMORA4fDiUOTAAgAFIARwBCACAOFw4xDkgOJw5EDhsARwBlAG4AZQBsACAAUgBHAEIAIABQAHIAbwBmAGkAbABpAFkAbABlAGkAbgBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBpAGwAaQBVAG4AaQB3AGUAcgBzAGEAbABuAHkAIABwAHIAbwBmAGkAbAAgAFIARwBCBB4EMQRJBDgEOQAgBD8EQAQ+BEQEOAQ7BEwAIABSAEcAQgZFBkQGQQAgBioGOQYxBkoGQQAgAFIARwBCACAGJwZEBjkGJwZFAEcAZQBuAGUAcgBpAGMAIABSAEcAQgAgAFAAcgBvAGYAaQBsAGUARwBlAG4AZQByAGUAbAAgAFIARwBCAC0AYgBlAHMAawByAGkAdgBlAGwAcwBldGV4dAAAAABDb3B5cmlnaHQgMjAwNyBBcHBsZSBJbmMuLCBhbGwgcmlnaHRzIHJlc2VydmVkLgBYWVogAAAAAAAA81IAAQAAAAEWz1hZWiAAAAAAAAB0TQAAPe4AAAPQWFlaIAAAAAAAAFp1AACscwAAFzRYWVogAAAAAAAAKBoAABWfAAC4NmN1cnYAAAAAAAAAAQHNAABzZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbP/AABEIAWgA8AMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDAAICAgICAgMCAgMEAwMDBAUEBAQEBQcFBQUFBQcIBwcHBwcHCAgICAgICAgKCgoKCgoLCwsLCw0NDQ0NDQ0NDQ3/2wBDAQICAgMDAwYDAwYNCQcJDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ3/3QAEAA//2gAMAwEAAhEDEQA/APi+iiiv5TP9/AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Q+L6KKK/lM/38CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9H4vooor+Uz/fwKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//0vi+iiiv5TP9/AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//T+L6KKK/lM/38CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9T4vooor+Uz/fwKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//1fi+iiiv5TP9/AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//W+L6KKK/lM/38CiiigAooooAKKKKACiiigAooooAKKw9d8S6H4atGvNau47ZAMhScu/sqDLN+Ar5g8b/GvVNYb7F4WaXTbQZ3TZAuJfxGfLH0OfftXv5Nw3jcyl+5jaPWT2/4Poj8l8S/Grhjgmg3mdbmr292jBp1H6q/ur+9JpaO13ofXdIAFGFGB6CvzqfxJ4ikfzJNVvWfruNxIT+e6ut0H4q+M9BhuYUvXvBPHsQ3jNOYWHR03E8jPQ/KeMjivrq3h5j4UHTo1002m46pNq6T6q6UnZ20u7bn4DlX01OHK+LSzDL6lKFn76cZtaXta0Xq0lo+zex900V81ad+0HEkVpFqelSO4QLdTRSqMuMZZEKgc8nBYY6ZNe8eHfEmk+KtNXVdGl82FmKMCNro46qwPQjP0xyOK+LzLh/MMBHnxVNqO19Gvw/U/o7gjxf4R4tqvD5FjIzqpczg1KMrWV9JJXtezcbpPqbtFFFeMfpQUUUUAFFFFABRRRQAUUUUAFFFFAH/1/i+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gAooooAKKKKACiiigD//1/i+iiiv5TP9/AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Q+L6KKK/lM/38CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9H4vooor+Uz/fwKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//0vi+iiiv5TP9/AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//T+L6KKK/lM/38CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9T4vooor+Uz/fwKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//1fi+iiiv5TP9/AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z
!! Sorcerer
<$list filter="[tag[Sorcerer]tag[Feature]sort[title]]"/>
<$list filter="[tag[Feature]tag[Sorcerer]!tag[Bloodline]sort[title]]">
<$transclude mode="block"/>
</$list>
\define sorcCardImages( cardNo:1 imgCo: 1 )
<$macrocall $name="sorcSpellCard" cardNo=<<__cardNo__>> imgCo=<<__imgCo__>> />
\end
\define castCard( cSpellLevel:1 cImgCo: 1 )
<$macrocall $name="castSpontaneousSpell" clssName="Sorcerer" spellLevel=<<cSpellLevel>> cImgCo=<<__cImgCo__>> />
\end
\define addCard( aSpellLevel:1 aImgCo: 1 )
<$macrocall $name="addSpontaneousSpell" clssName="Sorcerer" spellLevel=<<aSpellLevel>> aImgCo=<<__aImgCo__>> />
\end
\define resetCard( rSpellLevel:1 )
<$macrocall $name="resetSpontaneousSpell" clssName="Sorcerer" spellLevel=<<rSpellLevel>> />
\end
<style>
.parent {
top: 0;
left: 0;
}
.image1 {
border: 5px solid #000;
border-radius: 10px;
position: relative;
top: 0;
left: 0;
}
.image2 {
border: 5px solid #000;
border-radius: 10px;
position: absolute;
top: 20px;
left: 20px;
}
.image3 {
border: 5px solid #000;
border-radius: 10px;
position: absolute;
top: 40px;
left: 40px;
}
.image4 {
border: 5px solid #000;
border-radius: 10px;
position: absolute;
top: 60px;
left: 60px;
}
.image5 {
border: 5px solid #000;
border-radius: 10px;
position: absolute;
top: 80px;
left: 80px;
}
.image6 {
border: 5px solid #000;
border-radius: 10px;
position: absolute;
top: 100px;
left: 100px;
}
</style>
! Sorcerer Spells
!! Cantrips
<$list filter="[tag[Spell]tag[Sorcerer]field:spelllevel[0]field:sorcererknown[1]sort[title]]">
<$link>{{!!title}}</$link>
</$list>
!! 1st level Spells
<$list filter="[tag[Spell]tag[Sorcerer]field:spelllevel[1]field:sorcererknown[1]sort[title]]">
<$link>{{!!title}}</$link>
</$list>
<$set name="imgCo" value={{!!sorcerer1}}>
<<sorcCardImages "1" $(imgCo)$ >>
</$set>
<$button>
Cast
<$set name="cImgCo" value={{!!sorcerer1}}>
<<castCard "1" $(cImgCo)$ >>
</$set>
</$button>
<$button>
Add
<$set name="aImgCo" value={{!!sorcerer1}}>
<<addCard "1" $(aImgCo)$ >>
</$set>
</$button>
<$button>
Reload
<<resetCard "1" >>
</$button>
!! [[Sorcerer Spellcasting]]
{{Sorcerer Spells Table}}
!!Spells
A sorcerer casts arcane spells drawn primarily from the sorcerer/wizard spell list. She can cast any spell she knows without preparing it ahead of time. To learn or cast a spell, a sorcerer must have a Charisma score equal to at least 10 + the spell level. The Difficulty Class for a saving throw against a sorcerer’s spell is 10 + the spell level + the sorcerer’s Charisma modifier.
Like other spellcasters, a sorcerer can cast only a certain number of spells of each spell level per day. Her base daily spell allotment is given on Table: Sorcerer. In addition, she receives bonus spells per day if she has a high Charisma score.
A sorcerer’s selection of spells is extremely limited. A sorcerer begins play knowing four 0-level spells and two 1st-level spells of her choice. At each new sorcerer level, she gains one or more new spells, as indicated on Table: Sorcerer Spells Known. (Unlike spells per day, the number of spells a sorcerer knows is not affected by her Charisma score; the numbers on Table: Sorcerer Spells Known are fixed.) These new spells can be common spells chosen from the sorcerer/wizard spell list, or they can be unusual spells that the sorcerer has gained some understanding of through study.
At 3rd level, and every two levels thereafter, a sorcerer learns an additional spell, derived from her bloodline. These spells are in addition to the number of spells given for Sorcerer Spells Known. These spells cannot be exchanged for different spells at higher levels.
Upon reaching 4th level, and at every even-numbered sorcerer level after that (6th, 8th, and so on), a sorcerer can choose to learn a new spell in place of one she already knows. In effect, the sorcerer loses the old spell in exchange for the new one. The new spell’s level must be the same as that of the spell being exchanged. A sorcerer may swap only a single spell at any given level, and must choose whether or not to swap the spell at the same time that she gains new spells known for the level.
Unlike a wizard or a cleric a sorcerer need not prepare her spells in advance. She can cast any spell she knows at any time, assuming she has not yet used up her spells per day for that spell level.
!!Orisons (Sp)
Sorcerers learn a number of cantrips, or 0-level spells. These spells are cast like any other spell, but they do not consume any slots and may be used again.
! Sorcerer
!! Cantrips
<$list filter="[tag[Spell]tag[Arcane]field:spelllevel[0]sort[title]]"/>
!! 1st level Spells
<$list filter="[tag[Spell]tag[Arcane]field:spelllevel[1]sort[title]]"/>
| ![[Sorcerer Spellcasting]] |<|<|<|<|<|<|<|<|<|<|<|<|<|<|<|<|<|<|<|<|<|<|<|
|!|<|<| !Spells Cast per Day |<|<|<|<|<|<|<|<|<|<| !Spells Known |<|<|<|<|<|<|<|<|<|
|!Level|!Sorc|!CL|!|!1st|!2nd|!3rd|!4th|!5th|!6th|!7th|!8th|!9th|!|!0th|!1st|!2nd|!3rd|!4th|!5th|!6th|!7th|!8th|!9th|
|1^^st^^|||!||||||||||!|||||||||||
|2^^nd^^| 1 | 2 |!| <$calc><<classDataLookup "Sorcerer,SPD,1,1">><<SPDModifier "CHA" "1">></$calc> |||||||||!| <<classDataLookup "Sorcerer,SK,1,0">> | <<classDataLookup "Sorcerer,SK,1,1">> |||||||||
|3^^rd^^| 1 | 3 |!||||||||||!|||||||||||
|4^^th^^| 1 | 3 |!||||||||||!|||||||||||
|5^^th^^| 2 | 4 |!| <$calc><<classDataLookup "Sorcerer,SPD,2,1">><<SPDModifier "CHA" "1">></$calc> |||||||||!| <<classDataLookup "Sorcerer,SK,2,0">> | <<classDataLookup "Sorcerer,SK,2,1">> |||||||||
|6^^th^^| 3 | 5 |!| <$calc><<classDataLookup "Sorcerer,SPD,3,1">><<SPDModifier "CHA" "1">></$calc> |||||||||!| <<classDataLookup "Sorcerer,SK,3,0">> | <<classDataLookup "Sorcerer,SK,3,1">> |||||||||
| Bonus|<|<|<| <<SPDModifier "CHA" "1">> | <<SPDModifier "CHA" "2">> | <<SPDModifier "CHA" "3">>| <<SPDModifier "CHA" "4">> | <<SPDModifier "CHA" "5">> ||||||<|<|<|<|<|<|<|<|<|<|f
!! [[Southern Magician]]
[General]
"""
Your magical studies in Mulan lands have taught you spellcasting techniques unknown in the north that blur the line between arcane and divine magic.
''Prerequisite''
ability to cast 2nd-level spells, Mulan human,
''Benefit''
Once per day per two spellcaster levels, you can cast a divine spell as an arcane spell, or vice versa. This enables you to bypass arcane spell failure due to armor, or gain additional benefit from spell that functions differently for a divine caster instead of an arcane caster, such as true seeing or magic weapon. Spells changed with this feat are often confusing to those who haven't studied Mulan magic. Spellcasters who don't have this feat suffer a -4 penalty on attempts to counterspell or dispel this spell, and they must succeed at a caster level check (DC 11 + spell level) to detect the spell with detect magic. The actual source of the spell's power doesn't change, nor does its means of preparation. You are merely weaving the strands of magic together in an unconventional way that makes the spell behave somewhat differently.
Source: Races of Faerun (pg 168)
Taken: 3rd Level Feat Saved. Taken at 4th level.
"""
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Spark
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
evocation
1 standard action V or S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one Fine object
Duration: instantaneous
Saving Throw: Fortitude negates (object) Spell Resistance: yes (object)
"""
You can make an unattended Fine flammable object catch on fire. This works as if you were using flint and steel except that you can use spark in any sort of weather and it takes much less time to actually ignite an object.
Source: APG
Speak (DC 25): The companion is able to communicate very simple concepts through barks, gestures, whistles, or similar actions. The companion’s vocabulary is extremely limited, generally restricted to “yes,” “no,” and counting up to three. The companion is also able to recognize and respond to up to two specific questions per point of Intelligence. The companion does not so much understand the words as recognize the sound of them, and it responds accordingly. This trick does not actually increase the companion’s capacity to understand concepts and ideas; it can be taught a way to communicate the concept of “food,” for example, but it won’t distinguish cooked food from raw food, and it might not even recognize as food anything that is not part of its own diet. A companion must have an Intelligence score of 2 or higher to learn this trick.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Speak with Animals
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, S
Range: personal
Targets: you
Duration: 1 min./level
Saving Throw: Spell Resistance:
"""
You can ask questions of and receive answers from animals, but the spell doesn't make them any more friendly than normal. Wary and cunning animals are likely to be terse and evasive, while the more stupid ones make inane comments. If an animal is friendly toward you, it may do some favor or service for you.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Speak with Plants
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
divination
1 standard action V, S
Range: personal
Targets: you
Duration: 1 min./level
Saving Throw: Spell Resistance:
"""
You can communicate with normal plants and plant creatures, and can ask questions of and receive answers from them. A normal plant's sense of its surroundings is limited, so it won't be able to give (or recognize) detailed descriptions of creatures or answer questions about events outside its immediate vicinity. The spell doesn't make plant creatures any more friendly or cooperative than normal. Furthermore, wary and cunning plant creatures are likely to be terse and evasive, while the more stupid ones may make inane comments. If a plant creature is friendly, it may do some favor or service for you.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Spectral Scout
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (creation)
1 minute V, S
Range: 1 mile
Effect: one incorporeal animal of size Tiny or smaller
Duration: 10 minutes/level (D)
Saving Throw: none Spell Resistance: no
"""
You summon a spectral creature in the shape of the Tiny or smaller animal of your choice, which always appears in your square. The creature emits a faint glow of a color you choose at the time of the spell's casting, providing the illumination of a candle. It has the same statistics as the creature after which it is modeled (including ability scores, Armor Class, feats, senses, skills, and speed), but is incorporeal and has only 1 hit point. A spectral scout cannot attack, but can otherwise follow any basic instructions that could be given to a pet or animal companion of similar intelligence but without the need to make Handle Animal skill checks. A spectral scout can communicate verbally with the caster but can't be understood by others. A spectral scout can relay information it has directly witnessed with perfect clarity, including sights, sounds, and smells, but it cannot further interpret that information. For example, a spectral scout can report on how many individuals it sees, the direction they are going, and what equipment they carry; it can't tell the caster whether the people were friend or foe, or their objective.
Source: AP 116
|!Spells |!|!|!|!|!|!|!|
|[[Lightning Orb|Lesser Orb of Electricity Spell]] Ranged Touch | +<$calc><<baseAttackBonus>><<statModifier DEX>></$calc> |<$calc>min(5,floor((1+{{SpellData##SorcererCL}})/2))</$calc>d8 (<$calc>min(5,floor((1+{{SpellData##SorcererCL}}+{{SpellData##SorcererCL}})/2))</$calc>d8 Cold) | x2 | <$calc>25+5*floor((1+{{SpellData##SorcererCL}})/2)</$calc>/<$calc>25+5*floor((1+{{SpellData##SorcererCL}}+{{SpellData##DruidCL}})/2)</$calc> | E or C | Spell |[[Lesser Orb of Electricity|Lesser Orb of Electricity Spell]] S1 (CL {{SpellData##SorcererCL}}/<$calc>{{SpellData##DruidCL}}+{{SpellData##SorcererCL}}</$calc>) |
|[[Stone Discus|Stone Discus Spell]] Ranged | +<$calc><<baseAttackBonus>><<statModifier DEX>></$calc> |4d6 | x2 | <$calc>25+5*floor((1+{{SpellData##DruidCL}})/2)</$calc>/<$calc>25+5*floor((1+{{SpellData##SorcererCL}}+{{SpellData##DruidCL}})/2)</$calc> | B/S | <$calc>min(3,floor((1+{{SpellData##DruidCL}})/4))</$calc>/<$calc>min(3,floor((1+{{SpellData##SorcererCL}}+{{SpellData##DruidCL}})/4))</$calc> |[magic],[silver] ([cold iron] Cold), [[Stone Discus|Stone Discus Spell]] D2 (CL {{SpellData##DruidCL}}/<$calc>{{SpellData##DruidCL}}+{{SpellData##SorcererCL}}</$calc>) |
|[[Giant Boulder|Giant's Wrath Spell]] Ranged | +<$calc><<baseAttackBonus>><<statModifier DEX>>+min(10,{{SpellData##DruidCL}})</$calc> (+<$calc><<baseAttackBonus>><<statModifier DEX>>+min(10,{{SpellData##DruidCL}}+{{SpellData##SorcererCL}})</$calc> Cold) |2d6+<$calc><<statModifier STR>>+min(10,{{SpellData##DruidCL}})</$calc> (+<$calc><<statModifier STR>>+min(10,{{SpellData##DruidCL}}+{{SpellData##SorcererCL}})</$calc> Cold) | x2 | 120 | B | 3 |[[Giant's Wrath|Giant's Wrath Spell]] D3 (CL {{SpellData##DruidCL}}/<$calc>{{SpellData##DruidCL}}+{{SpellData##SorcererCL}}</$calc>) |
! Main Pages
[[Spell Cards]]
[[Druid Spell Cards]]
[[Sorcerer Spell Cards]]
!! Still in Development
[[Druid Spell Cards Mockup]]
[[Experiment Spell Card]] (Sorcerer)
[[Experiment Spell Card 2]] (Sorcerer)
[[Spell Card Pages]]
{{Sorcerer Spell Cards}}
{{Druid Spell Cards}}
! Druid Spell Lists
<$list filter="[tag[SpellList]tag[Divine]sort[title]]"/>
! Sorcerer Spell Lists
<$list filter="[tag[SpellList]tag[Arcane]sort[title]]"/>
! Combined Spell Lists
<$list filter="[tag[SpellList]!tag[Arcane]!tag[Divine]sort[title]]"/>
! All Spell Lists
<$list filter="[tag[SpellList]sort[title]]"/>
\define oldPreparedValue()
{{$(currentTiddler)$!!slots}}
\end
\define newAddPreparedValue()
<$macrocall $name="increment" value=$(oldValue)$ step="1" />
\end
\define newMinusPreparedValue()
<$macrocall $name="increment" value=$(oldValue)$ step="-1" />
\end
\define loadButton()
<$button set="$(currentTiddler)$!!slots" setTo="$(newAddValue)$" > + </$button>
\end
\define unloadButton()
<$button set="$(currentTiddler)$!!slots" setTo="$(newMinusValue)$" > - </$button>
\end
\define myCheckActions()
<$action-setfield $field="prepared" $value="1" />
<$action-setfield $field="slots" $value="1" />
<$macrocall $name="loadSpellCheckbox" clssName="Druid" LDSpellName="$(currentTiddler)$" />
\end
\define myUncheckActions()
<$action-setfield $field="prepared" $value="0" />
<$action-deletefield $field="slots" />
<$macrocall $name="unloadSpellCheckbox" clssName="Druid" UDSpellName="$(currentTiddler)$" />
\end
\define lookUpSPD()
<<classDataLookup "Druid,SPD,$(clssLevel)$,$(spellLevel)$">>
\end
!![[Spellbook]]
! Druid
!! Orisions
<$set name=clssLevel value={{SpellData##Druid}} >
<$set name=spellLevel value=0 >
Spells per Day: <<lookUpSPD>>
</$set>
</$set>
<table>
<tr><th></th><th align=left>Spell Name</th><th>Slots</th><th>+</th><th>-</th></tr>
<$set name=thisSpellLevel value="0" >
<$list filter="[tag[Spell]tag[Druid]field:spelllevel<thisSpellLevel>field:druidknown[1]sort[title]]" >
<tr>
<$set name=oldValue value=<<oldPreparedValue>> >
<$set name=newAddValue value=<<newAddPreparedValue>> >
<$set name=newMinusValue value=<<newMinusPreparedValue>> >
<$wikify name=thisPButton text=<<loadButton>> >
<$wikify name=thisMButton text=<<unloadButton>> >
<td><$checkbox field="prepared" checked="1" unchecked="0" default="0" actions=<<myCheckActions>> uncheckactions=<<myUncheckActions>> ></$checkbox></td>
<td width=450px ><$link>{{!!title}}</$link></td><td>{{!!slots}}</td>
<td><<thisPButton>> </td>
<td><<thisMButton>> </td>
</$wikify>
</$wikify>
</$set>
</$set>
</$set>
</tr>
</$list>
</$set>
</table>
!! 1st level Spells
<$set name=clssLevel value={{SpellData##Druid}} >
<$set name=spellLevel value=1 >
Spells per Day: <$calc><<lookUpSPD>><<SPDModifier "WIS" "1">></$calc>+1
</$set>
</$set>
<table>
<tr><th></th><th align=left>Spell Name</th><th>Slots</th><th>+</th><th>-</th></tr>
<$set name=thisSpellLevel value="1" >
<$list filter="[tag[Spell]tag[Druid]field:spelllevel<thisSpellLevel>field:druidknown[1]sort[title]]" >
<tr>
<$set name=oldValue value=<<oldPreparedValue>> >
<$set name=newAddValue value=<<newAddPreparedValue>> >
<$set name=newMinusValue value=<<newMinusPreparedValue>> >
<$wikify name=thisPButton text=<<loadButton>> >
<$wikify name=thisMButton text=<<unloadButton>> >
<td><$checkbox field="prepared" checked="1" unchecked="0" default="0" actions=<<myCheckActions>> uncheckactions=<<myUncheckActions>> ></$checkbox></td>
<td width=450px ><$link>{{!!title}}</$link></td><td>{{!!slots}}</td>
<td><<thisPButton>> </td>
<td><<thisMButton>> </td>
</$wikify>
</$wikify>
</$set>
</$set>
</$set>
</tr>
</$list>
</$set>
</table>
!! 2nd level Spells
<$set name=clssLevel value={{SpellData##Druid}} >
<$set name=spellLevel value=2 >
Spells per Day: <$calc><<lookUpSPD>><<SPDModifier "WIS" "2">></$calc>+1
</$set>
</$set>
<table>
<tr><th></th><th align=left>Spell Name</th><th>Slots</th><th>+</th><th>-</th></tr>
<$set name=thisSpellLevel value="2" >
<$list filter="[tag[Spell]tag[Druid]field:spelllevel<thisSpellLevel>field:druidknown[1]sort[title]]" >
<tr>
<$set name=oldValue value=<<oldPreparedValue>> >
<$set name=newAddValue value=<<newAddPreparedValue>> >
<$set name=newMinusValue value=<<newMinusPreparedValue>> >
<$wikify name=thisPButton text=<<loadButton>> >
<$wikify name=thisMButton text=<<unloadButton>> >
<td><$checkbox field="prepared" checked="1" unchecked="0" default="0" actions=<<myCheckActions>> uncheckactions=<<myUncheckActions>> ></$checkbox></td>
<td width=450px ><$link>{{!!title}}</$link></td><td>{{!!slots}}</td>
<td><<thisPButton>> </td>
<td><<thisMButton>> </td>
</$wikify>
</$wikify>
</$set>
</$set>
</$set>
</tr>
</$list>
</$set>
</table>
!! 3rd level Spells
<$set name=clssLevel value={{SpellData##Druid}} >
<$set name=spellLevel value=3 >
Spells per Day: <$calc><<lookUpSPD>><<SPDModifier "WIS" "3">></$calc>+1
</$set>
</$set>
<table>
<tr><th></th><th align=left>Spell Name</th><th>Slots</th><th>+</th><th>-</th></tr>
<$set name=thisSpellLevel value="3" >
<$list filter="[tag[Spell]tag[Druid]field:spelllevel<thisSpellLevel>field:druidknown[1]sort[title]]" >
<tr>
<$set name=oldValue value=<<oldPreparedValue>> >
<$set name=newAddValue value=<<newAddPreparedValue>> >
<$set name=newMinusValue value=<<newMinusPreparedValue>> >
<$wikify name=thisPButton text=<<loadButton>> >
<$wikify name=thisMButton text=<<unloadButton>> >
<td><$checkbox field="prepared" checked="1" unchecked="0" default="0" actions=<<myCheckActions>> uncheckactions=<<myUncheckActions>> ></$checkbox></td>
<td width=450px ><$link>{{!!title}}</$link></td><td>{{!!slots}}</td>
<td><<thisPButton>> </td>
<td><<thisMButton>> </td>
</$wikify>
</$wikify>
</$set>
</$set>
</$set>
</tr>
</$list>
</$set>
</table>
! Sorcerer
!! Cantrips
<$list filter="[tag[Spell]tag[Sorcerer]field:spelllevel[0]field:sorcererknown[1]sort[title]]"/>
!! 1st level Spells
<$list filter="[tag[Spell]tag[Sorcerer]field:spelllevel[1]field:sorcererknown[1]sort[title]]"/>
iVBORw0KGgoAAAANSUhEUgAAA+MAAAPiCAYAAAAU2Ax1AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAB1WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjE8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KAtiABQAAQABJREFUeAHsvQmcZVdV779qruq505knBhNmmYT3RODFP6KE9wcEAUFBEJAZIwkgGsnEmARDwiQiCAgBxCf4EBERBAEl89DpTnqex/TcXV3jvVX11nedu6pOF93Vne6q2zX8dn1OnWmfvff5nnP32b+99tAw5M7kREAEREAEREAEREAEREAEREAEREAE6kagsW4xKSIREAEREAEREAEREAEREAEREAEREIEgIDGuF0EEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTkBivM3BFJwIiIAIiIAIiIAIiIAIiIAIiIAIS43oHREAEREAEREAEREAEREAEREAERKDOBCTG6wxc0YmACIiACIiACIiACIiACIiACIiAxLjeAREQAREQAREQAREQAREQAREQARGoMwGJ8ToDV3QiIAIiIAIiIAIiIAIiIAIiIAIiIDGud0AEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTkBivM3BFJwIiIAIiIAIiIAIiIAIiIAIiIAIS43oHREAEREAEREAEREAEREAEREAERKDOBCTG6wxc0YmACIiACIiACIiACIiACIiACIiAxLjeAREQAREQAREQAREQAREQAREQARGoMwGJ8ToDV3QiIAIiIAIiIAIiIAIiIAIiIAIiIDGud0AEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTkBivM3BFJwIiIAIiIAIiIAIiIAIiIAIiIAIS43oHREAEREAEREAEREAEREAEREAERKDOBCTG6wxc0YmACIiACIiACIiACIiACIiACIiAxLjeAREQAREQAREQAREQAREQAREQARGoMwGJ8ToDV3QiIAIiIAIiIAIiIAIiIAIiIAIiIDGud0AEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTkBivM3BFJwIiIAIiIAIiIAIiIAIiIAIiIAIS43oHREAEREAEREAEREAEREAEREAERKDOBCTG6wxc0YmACIiACIiACIiACIiACIiACIiAxLjeAREQAREQAREQAREQAREQAREQARGoMwGJ8ToDV3QiIAIiIAIiIAIiIAIiIAIiIAIiIDGud0AEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTkBivM3BFJwIiIAIiIAIiIAIiIAIiIAIiIAIS43oHREAEREAEREAEREAEREAEREAERKDOBCTG6wxc0YmACIiACIiACIiACIiACIiACIiAxLjeAREQAREQAREQAREQAREQAREQARGoMwGJ8ToDV3QiIAIiIAIiIAIiIAIiIAIiIAIiIDGud0AEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTkBivM3BFJwIiIAIiIAIiIAIiIAIiIAIiIAIS43oHREAEREAEREAEREAEREAEREAERKDOBCTG6wxc0YmACIiACIiACIiACIiACIiACIiAxLjeAREQAREQAREQAREQAREQAREQARGoMwGJ8ToDV3QiIAIiIAIiIAIiIAIiIAIiIAIiIDGud0AEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTkBivM3BFJwIiIAIiIAIiIAIiIAIiIAIiIAIS43oHREAEREAEREAEREAEREAEREAERKDOBCTG6wxc0YmACIiACIiACIiACIiACIiACIiAxLjeAREQAREQAREQAREQAREQAREQARGoMwGJ8ToDV3QiIAIiIAIiIAIiIAIiIAIiIAIiIDGud0AEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTkBivM3BFJwIiIAIiIAIiIAIiIAIiIAIiIAIS43oHREAEREAEREAEREAEREAEREAERKDOBCTG6wxc0YmACIiACIiACIiACIiACIiACIiAxLjeAREQAREQAREQAREQAREQAREQARGoMwGJ8ToDV3QiIAIiIAIiIAIiIAIiIAIiIAIiIDGud0AEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTkBivM3BFJwIiIAIiIAIiIAIiIAIiIAIiIAIS43oHREAEREAEREAEREAEREAEREAERKDOBCTG6wxc0YmACIiACIiACIiACIiACIiACIiAxLjeAREQAREQAREQAREQAREQAREQARGoMwGJ8ToDV3QiIAIiIAIiIAIiIAIiIAIiIAIiIDGud0AEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTkBivM3BFJwIiIAIiIAIiIAIiIAIiIAIiIAIS43oHREAEREAEREAEREAEREAEREAERKDOBCTG6wxc0YmACIiACIiACIiACIiACIiACIiAxLjeAREQAREQAREQAREQAREQAREQARGoMwGJ8ToDV3QiIAIiIAIiIAIiIAIiIAIiIAIiIDGud0AEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTkBivM3BFJwIiIAIiIAIiIAIiIAIiIAIiIAIS43oHREAEREAEREAEREAEREAEREAERKDOBCTG6wxc0YmACIiACIiACIiACIiACIiACIiAxLjeAREQAREQAREQAREQAREQAREQARGoMwGJ8ToDV3QiIAIiIAIiIAIiIAIiIAIiIAIiIDGud0AEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTkBivM3BFJwIiIAIiIAIiIAIiIAIiIAIiIAIS43oHREAEREAEREAEREAEREAEREAERKDOBCTG6wxc0YmACIiACIiACIiACIiACIiACIiAxLjeAREQAREQAREQAREQAREQAREQARGoMwGJ8ToDV3QiIAIiIAIiIAIiIAIiIAIiIAIiIDGud0AEREAEREAEREAEREAEREAEREAE6kxAYrzOwBWdCIiACIiACIiACIiACIiACIiACEiM6x0QAREQAREQAREQAREQAREQAREQgToTaK5zfIpOBERABERABGYUgaGhIWtoaDjknjmWjnPsDcX/4miDHeq/vHcs4WXYo9cZbzk9o48NDg7GZY2Nqq8fzU/7IiACIiACIjCeBBr8IzxSIhjPkBWWCIiACIiACEwTAvmpLIvYh3JrCFyuPdz1ce4owrcsxsvxci1pa2pqKh+ObY7nknEfLv70kwGk39yvVqvW3Ky6++ShtQiIgAiIgAiMFwGJ8fEiqXBEQAREQASmLQEEa7rDCdo891DXGe7oMMsCmXMp5sfDWp1hHy6sI6Xnod6X/IuACIiACIiACBydgMT40RnJhwiIgAiIgAicEIEUwASSwjvXHEuxXT7G8XQjVQHenN13BgcLqzf+y9f47iEu9wcGBwzxXW7+Pjg0aAMD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RQREQAREQARWM4HYa8M83raQ+djyOTsU1WxseMjCWtOqcdXyl77O7nvoEfNwTh4e7C2cHnr4wATsOVykJgIiIAIiIAIisOwEJMaXHbkGFAEREAEREIHBEvCREj3xAnSaWKNWtTISuEW1hvn5vOHdHvqZR21o0ybrIE683U7gyh4g5Rv+pdXQBjsZ9SYCIiACIiACIrAgAhLjC8Kkk0RABERABERg9RIIILjriAtP/ATly6rWmJqycrFor0xX4Z7+ATv4Y2/G5CHW/Txiyyna08a4cjUREAEREAEREIGVISAxvjLcNaoIiIAIiIAIDI4ANLUP//MO/lWmp6yEJG6zlZrtuvRye/9PPwyDeYhkbW2UPINFHLHljCtnc/XJBzcL9SQCIiACIiACInAaBMLTOFenioAIiIAIiIAIrEYCSMKWK3jWRsb0Qy++hM95JGjz7b5HHrWxya0WwzU9x2BxNBrDg4BO6iiHhkzr2MPdaiIgAiIgAiIgAstMQJbxZQau4URABERABERg4ATged7uJJYPc/bqS6/a08//0N5+7z12xU03W4xy4r4P8Q31zXhxVwYNE5h3UYdoVxMBERABERABEVh+AvoFXn7mGlEEREAEREAEBksAadSbzToUtm/P/r9n7ZKrrrI777/PoMMtR6EOizkt4QF+9UNYxdkoymMq9fSr26c3ERABERABERCB5SMgN/XlY62RREAEREAERGBJCLST2MqlorWm5+zJHzxln/2FL1s4MmptJm1rQYSHVNysO87hkeQNIjwI8hLiS/I01KkIiIAIiIAILIyAxPjCOOksERABERABEVh1BLJEbBb7ENy+feepp+zGd7/b9h64yRAoDsHtW9uD8PaP/bkPQghxNREQAREQAREQgRUl4OGHXFVGV/QRaHAREAEREAERODMC2U+4B5N3B+L72WeesdHRUZtATXG2OIoszOfOrHNdJQIiIAIiIAIisKQEJMaXFK86FwEREAEREIGlI3CMGEea9KjZsgLqi7N12m3zUcqM51Csq4mACIiACIiACKwuAkrgtrqeh2YjAiIgAiIgAqdNoE3hjTJlBcSN1+o1FwveQWw423zW9NPuVReIgAiIgAiIgAgsJQGJ8aWkq75FQAREQAREYBkJtJA1nTXGKcODMHTZ0oMASdzUREAEREAEREAEVh0BuamvukeiCYmACIiACIjAwghkbuo8m58TeKP7Xs86u1zUFwZSZ4mACIiACIjAChDo+cVegdE1pAiIgAiIgAiIwKIJeCgW7sEcHkCIx+3YOgmc1BFDzv34suj+1YEIiIAIiIAIiMDgCUiMD56pehQBERABERCB5SVA4Y2YcTbGjtM6zi2zqXeLiy/vfDSaCIiACIiACIhAXwJyU++LSCeIgAiIgAiIgAiIgAiIgAiIgAiIwGAJyDI+WJ7qTQREQAREQAREQAREQAREQAREQAT6EpAY74tIJ4iACIiACIiACIiACIiACIiACIjAYAlIjA+Wp3oTAREQAREQAREQAREQAREQAREQgb4EJMb7ItIJIiACIiACIiACIiACIiACIiACIjBYAhLjg+Wp3kRABERABERABERABERABERABESgLwGJ8b6IdIIIiIAIiIAIiIAIiIAIiIAIiIAIDJaAxPhgeao3ERABERABERABERABERABERABEehLQGK8LyKdIAIiIAIiIAIiIAIiIAIiIAIiIAKDJSAxPlie6k0EREAEREAEREAEREAEREAEREAE+hKQGO+LSCeIgAiIgAiIgAiIgAiIgAiIgAiIwGAJSIwPlqd6EwEREAEREAEREAEREAEREAEREIG+BCTG+yLSCSIgAiIgAiIgAiIgAiIgAiIgAiIwWAIS44Plqd5EQAREQAREQAREQAREQAREQAREoC8BifG+iHSCCIiACIiACIiACIiACIiACIiACAyWgMT4YHmqNxEQAREQAREQAREQAREQAREQARHoS0BivC8inSACIiACIiACIiACIiACIiACIiACgyUgMT5YnupNBERABERABERABERABERABERABPoSkBjvi0gniIAIiIAIiIAIiIAIiIAIiIAIiMBgCUiMD5anehMBERABERABERABERABERABERCBvgQkxvsi0gkiIAIiIAIiIAIiIAIiIAIiIAIiMFgCEuOD5aneREAEREAEREAEREAEREAEREAERKAvAYnxvoh0ggiIgAiIgAiIgAiIgAiIgAiIgAgMloDE+GB5qjcREAEREAEREAEREAEREAEREAER6EtAYrwvIp0gAiIgAiIgAiIgAiIgAiIgAiIgAoMlIDE+WJ7qTQREQAREQAREQAREQAREQAREQAT6EpAY74tIJ4iACIiACIiACIiACIiACIiACIjAYAlIjA+Wp3oTAREQAREQAREQAREQAREQAREQgb4EJMb7ItIJIiACIiACIiACIiACIiACIiACIjBYAv8f4MfPFcluIBIAAAAASUVORK5CYII=
.spellcard0,
.spellcard0 table {
border-style: solid;
border-color: #000;
border-width: 5px;
height: 360px;
width: 240px;
background-color: yellow;
}
.spellcard0 table tr:last-child,
.spellcard0 td:first-child {
border-bottom-left-radius: 10px;
}
.spellcard0 table tr:last-child,
.spellcard0 td:last-child {
border-bottom-right-radius: 10px;
}
.spellcard0 tr,
.spellcard0 td {
border:0 !important;
}
.spellcard1,
.spellcard1 table {
border-style: solid;
border-color: #000;
border-width: 5px;
height: 360px;
width: 240px;
background-color: lightblue;
}
.spellcard1 table tr:last-child,
.spellcard1 td:first-child {
border-bottom-left-radius: 10px;
}
.spellcard1 table tr:last-child,
.spellcard1 td:last-child {
border-bottom-right-radius: 10px;
}
.spellcard1 tr,
.spellcard1 td {
border:0 !important;
}
.spellcard2,
.spellcard2 table {
border-style: solid;
border-color: #000;
border-width: 5px;
height: 360px;
width: 240px;
background-color: pink;
}
.spellcard2 table tr:last-child,
.spellcard2 td:first-child {
border-bottom-left-radius: 10px;
}
.spellcard2 table tr:last-child,
.spellcard2 td:last-child {
border-bottom-right-radius: 10px;
}
.spellcard2 tr,
.spellcard2 td {
border:0 !important;
}
.spellcard3,
.spellcard3 table {
border-style: solid;
border-color: #000;
border-width: 5px;
height: 360px;
width: 240px;
background-color: orange;
}
.spellcard3 table tr:last-child,
.spellcard3 td:first-child {
border-bottom-left-radius: 10px;
}
.spellcard3 table tr:last-child,
.spellcard3 td:last-child {
border-bottom-right-radius: 10px;
}
.spellcard3 tr,
.spellcard3 td {
border:0 !important;
}
.spellcardD,
.spellcardD table {
border-style: solid;
border-color: #000;
border-width: 5px;
height: 360px;
width: 240px;
background-color: lightgreen;
}
.spellcardD table tr:last-child,
.spellcardD td:first-child {
border-bottom-left-radius: 10px;
}
.spellcardD table tr:last-child,
.spellcardD td:last-child {
border-bottom-right-radius: 10px;
}
.spellcardD tr,
.spellcardD td {
border:0 !important;
}
You are skilled at the art of casting spells, identifying magic items, crafting magic items, and identifying spells as they are being cast.
|!Task |!Spellcraft DC|
|Identify a spell as it is being cast | 15 + spell level |
|Learn a spell from a spellbook or scroll | 15 + spell level |
|Prepare a spell from a borrowed spellbook | 15 + spell level |
|Identify the properties of a magic item using detect magic | 15 + item’s caster level |
|Decipher a scroll | 20 + spell level |
|Craft a magic item | Varies by item |
!!Common Uses
Spellcraft is used whenever your knowledge and skill of the technical art of casting a spell or crafting a magic item comes into question. This skill is also used to identify the properties of magic items in your possession through the use of spells such as detect magic and identify. The DC of this check varies depending upon the task at hand.
!!Craft Magic Items
Making a Spellcraft check to craft a magic item is made as part of the creation process.
!!Determine Properties of Magic Item
Attempting to ascertain the properties of a magic item takes 3 rounds per item to be identified and you must be able to thoroughly examine the object.
''Retry?'' When using detect magic or identify to learn the properties of magic items, you can only attempt to ascertain the properties of an individual item once per day. Additional attempts reveal the same results.
!!Identify Spell Being Cast
Identifying a spell as it is being cast requires no action, but you must be able to clearly see the spell as it is being cast, and this incurs the same penalties as a Perception skill check due to distance, poor conditions, and other factors.
''Retry?'' You cannot retry checks made to identify a spell.
!!Learn Spell from Spellbook
Learning a spell from a spellbook takes 1 hour per level of the spell (0-level spells take 30 minutes).
''Retry?'' If you fail to learn a spell from a spellbook or scroll, you must wait at least 1 week before you can try again.
!!Prepare Spell from Borrowed Spellbook
Preparing a spell from a borrowed spellbook does not add any time to your spell preparation.
''Retry?'' If you fail to prepare a spell from a borrowed spellbook, you cannot try again until the next day.
!!Modifiers
''Class''
If you are a specialist wizard, you get a +2 bonus on Spellcraft checks made to identify, learn, and prepare spells from your chosen school. Similarly, you take a –5 penalty on similar checks made concerning spells from your opposition schools.
''Race''
An elf gets a +2 racial bonus on Spellcraft checks to identify the properties of magic items.
''Feats''
If you have the Magical Aptitude feat, you get a +2 bonus on all Spellcraft checks. If you have 10 or more ranks in Spellcraft, the bonus increases to +4.
{
"Levels": "[\"Druid\",\"Sorcerer\"]",
"Druid": 5,
"DruidStat": "WIS",
"DruidMax": 3,
"DruidCL": 6,
"DruidBag": "Domain",
"DruidSPD0": 4,
"DruidSPD1": 5,
"DruidSPD2": 3,
"DruidSPD3": 2,
"Druid Prepared 0": "[\"Light Spell\",\"Detect Magic Spell\",\"Read Magic Spell\",\"Mending Spell\"]",
"Druid Prepared 1": "[\"Frostbite Spell\",\"Magic Fang Spell\",\"Ice Slick Spell\",\"Snowball Spell\",\"Lesser Vigor Spell\",\"Wood Wose Spell\"]",
"Druid Prepared 2": "[\"Chill Metal Spell\",\"Frost Breath Spell\",\"Stone Discus Spell\",\"Gust Of Wind Spell\"]",
"Druid Prepared 3": "[\"Sleet Storm Spell\",\"Giant's Wrath Spell\",\"Heart of Water Spell\"]",
"Sorcerer": 3,
"SorcererStat": "CHA",
"SorcererMax": 1,
"SorcererCL": 5,
"SorcererSPD1": 6,
"SorcererSK0": 5,
"SorcererSK1": 3
}
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Spider Climb
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a live spider)
Range: touch
Targets: creature touched
Duration: 10 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The subject can climb and travel on vertical surfaces or even traverse ceilings as well as a spider does. The affected creature must have its hands free to climb in this manner. The subject gains a climb speed of 20 feet and a +8 racial bonus on Climb skill checks; furthermore, it need not make Climb checks to traverse a vertical or horizontal surface (even upside down). A spider climbing creature retains its Dexterity bonus to Armor Class (if any) while climbing, and opponents get no special bonus to their attacks against it. It cannot, however, use the run action while climbing.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Spiderskin
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (leg of a spider), DF
Range: touch
Targets: creature touched
Duration: 10 min./level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The spell grants the recipient a +1 enhancement bonus to its existing natural armor bonus, a +1 racial bonus on saves against poison, and a +1 racial bonus on Hide checks for every three caster levels you have. This means that the bonuses to natural armor, saves, and Hide checks improve to +2 at caster level 6th, +3 at caster level 9th, +4 at 12th, and +5 at 15th. The enhancement bonus provided by spiderskin stacks with the subject's natural armor bonus, but not with other enhancement bonuses to natural armor. A creature without natural armor has an effective natural armor bonus of +0, much as a character wearing only normal clothing has an armor bonus of +0.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Spike Growth
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: medium (100 ft. + 10 ft./level)
Area: one 20-ft. square/level
Duration: 1 hour/level
Saving Throw: Reflex partial Spell Resistance: yes
"""
Any ground-covering vegetation in the spell's area becomes very hard and sharply pointed without changing its appearance. In areas of bare earth, roots and rootlets act in the same way. Typically, spike growth can be cast in any outdoor setting except open water, ice, heavy snow, sandy desert, or bare stone. Any creature moving on foot into or through the spell's area takes 1d4 points of piercing damage for each 5 feet of movement through the spiked area. Any creature that takes damage from this spell must also succeed on a Reflex save or suffer injuries to its feet and legs that slow its land speed by half. This speed penalty lasts for 24 hours or until the injured creature receives a cure spell (which also restores lost hit points). Another character can remove the penalty by taking 10 minutes to dress the injuries and succeeding on a Heal check against the spell's save DC. Magic traps are hard to detect. A rogue (only) can use the Perception skill to find a spike growth. The DC is 25 + spell level, or DC 28 for spike growth (or DC 27 for spike growth cast by a ranger). Spike growth can't be disabled with the Disable Device skill.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Spinterbolt
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation)
1 standard action V, S, M (a splinter of wood)
Range: close (25 ft. + 5 ft./2 level)
Effect: one or more streams of splinters
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
You must make a ranged attack to hit the target. If you hit, the splinterbolt deals 4d6 points of piercing damage. A splinterbolt threatens a critical hit on a roll of 18-20. You can fire one additional splinterbolt for every four levels beyond 3rd (to a maximum of three at 11th level). You can fire these splinterbolts at the same or different targets, but all splinterbolts must be aimed at targets within 30 feet of each other and fired simultaneously. A creature's damage reduction, if any, applies to the damage from this spell. The damage from splinterbolt is treated as magic and piercing for the purpose of overcoming damage reduction.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Spirit Call
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
enchantment
1 full round V, S, DF
Range: 100 ft.
Effect: 100-ft.-radius spread centered on you
Duration: 1 minute/level
Saving Throw: Spell Resistance:
"""
You call out to nature spirits associated with your spirit (not your wandering spirit) if you are a shaman, or your domain if you are a druid, beckoning them forth to pay attention to your current location. For the duration of the spell, all spells from your spirit magic list or domain list that are cast within the affected area have their caster level increased by 1, and all spellcasters casting such spells receive a +4 insight bonus on their concentration checks for those spells only.
Source: Advanced Class Origins
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Spirit Share
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, F (liquid to be shared)
Range: personal
Targets: you
Duration: 1 round/level
Saving Throw: Spell Resistance:
"""
This spell was first created as a minor parlor trick, but adventuring Caydenites have repurposed and improved on it for use on their travels. For the duration of the spell, as a standard action you can touch a willing target to deliver 1 dose of a potable liquid (including alcoholic drinks and potions and elixirs, but not poisons or other liquids that are primarily harmful when drunk) in your possession (though not necessarily held in hand) into her.
Source: Inner Sea Temples
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Spit Venom
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V
Range: close (25 ft. + 5 ft./2 levels)
Effect: one stream of venom
Duration: instantaneous; see text
Saving Throw: Fortitude partial Spell Resistance: no
"""
You spit a stream of venom at a target using a ranged touch attack. If the venom hits, it causes blindness for 1 round. The target must also save or be poisoned by black adder venom; the DC in successive rounds of the poison is equal to the spell's DC.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Spore Burst
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration
1 standard action V, S, M (a tiny puffball mushroom)
Range: touch
Targets: one plant creature; see text
Duration: see text
Saving Throw: special; see text Spell Resistance: no
"""
You cause a willing plant creature's body to sprout small, puffy mushrooms that remain for 1 round per caster level or until the creature uses them. As a standard action, the target can cause these mushrooms to burst open, releasing a cloud of toxic spores that affect all creatures in a 20-foot-radius spread. Those in the area must succeed at Fortitude saves or be sickened for 1d6 rounds as they are overcome by sneezing and coughing. The caster is immune to this poison effect, as are all creatures of the plant type.
Source: Cohorts & Companions
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Spotlight
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S
Range: long (400 ft. + 40 ft./level)
Targets: one creature
Duration: 1 minute/level (D)
Saving Throw: Reflex partial Spell Resistance: yes
"""
You create a mobile area of bright light centered on one target while simultaneously suppressing other light sources surrounding it. The light level in the target's space increases to bright light, causing the target to take any penalties that it would normally take in bright light. In addition, all mundane light sources (and magic light sources of 3rd spell level or lower) within 20 feet of the target's space are suppressed, shedding no light as long as they remain within this spell's affected area and reverting the area normally affected by those light sources to their unmodified illumination levels. The effects of spotlight are centered on the target and move as the target does. As a result, the target takes a -20 penalty on all Stealth checks for the spell's duration and cannot benefit from concealment normally provided by darkness, as though illuminated with faerie fire. If the target succeeds at its Reflex save, the spotlight is created in the target's square but does not move with the target, and it hinders the Stealth checks only of creatures within that square.
Source: Blood Of Shadows
! Squid
|N Medium animal (aquatic) |
|''Init'' +2 ''Senses'' [[Low-Light Vision]] ''Perception'' +7|
|!Defense |
|''AC'' 13, touch 12, flat-footed 11 |
|''hp'' 13 (3d8) |
|''Fort'' +3, ''Ref'' +7, ''Will'' +2 |
|!Offense |
|''Speed'' swim 60 ft., jet 240 ft. |
|''Melee'' bite +4 (1d3+2), tentacles +2 (1d4+1 plus grab) |
|!Statistics |
|''Str'' 15, ''Dex'' 15, ''Con'' 11, ''Int'' 2, ''Wis'' 12, ''Cha'' 2 |
|''Base Attack'' +2, ''CMB'' +4 (+8 grapple), ''CMD'' 16 (can't be [[Tripped|Trip]]) |
|''Feats'' Improved Initiative, Lightning Reflexes, MultiattackB |
|''Skills'' Perception +7, Swim +10 |
|!Special Abilities |
|!''Ink Cloud'' (Ex) |
|An octopus can emit a 10-foot-radius sphere of ink once per minute as a free action. The ink provides total concealment in water, and persists for 1 minute. |
|!''Jet'' (Ex) |
|An octopus can jet backward once per round as a full-round action, at a speed of 200 feet. It must move in a straight line while jetting, and does not provoke attacks of opportunity when it does so. |
Squid are aggressive predators that fear little and are more than willing to attack prey larger than themselves.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Stabilize Pressure
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
1 standard action V, S, M (a piece of shell)
Range: touch
Targets: creature touched
Duration: instantaneous
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
You instantly stabilize the target's pressure, causing it to adjust to its current pressure all at once. This doesn't help it readjust to future pressure changes.
Source: Aquatic Adventures
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Stabilize
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
conjuration (healing)
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one living creature
Duration: instantaneous
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
Upon casting this spell, you target a living creature that has -1 or fewer hit points. That creature is automatically stabilized and does not lose any further hit points. If the creature later takes damage, it continues dying normally.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Staggering Ice
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF
Range: long (400 ft. + 40 ft./level)
Area: 40-ft.-radius spread
Targets: 40-ft.-radius spread
Duration: 1 min./level (D)
Saving Throw: Reflex partial and Fortitude negates (see text) Spell Resistance: no
"""
This spell causes hoary ice and snow to wrap around creatures in the area of effect or those that enter the area. Creatures that fail their Reflex save gain the entangled condition. Creatures that make their save can move as normal, but those that remain in the area must save again at the end of your turn. Creatures that move into the area must save immediately. Those that fail must end their movement and gain the entangled condition. Furthermore, the extreme cold of the ice immediately starts bouts of hypothermia and creatures must make a Fortitude save or be sickened for as long as it remains in the area and for 1d4 rounds afterward. Entangled creatures can attempt to break free as a move action, making a Strength or Escape Artist check. The DC for this check is equal to the DC of the spell. The entire area of effect is considered difficult terrain while the effect lasts. Creatures immune to cold or who can walk on ice and snow without penalty are immune to both effects.
Source: Homebrew
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Starsight
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, S
Range: personal
Targets: you
Duration: 10 minutes/level
Saving Throw: Spell Resistance:
"""
You can observe the night sky and all of its celestial bodies as if it were a clear night, regardless of weather conditions that would otherwise block your view. Your vision penetrates any light pollution from nonmagical sources, though this spell doesn't function in daylight, indoors, or underground. You see through forest canopies and similar natural obstructions, but only for the purpose of stargazing. For the spell's duration, you gain a +2 insight bonus on Knowledge (geography) checks relating to the stars and planets and Survival checks to avoid getting lost.
Source: People Of The Stars
<<tabs "[tag[Stats]sort[title]]" "" "$:/state/tab1">>
Stay (DC 15) The animal stays in place, waiting for you to return. It does not challenge other creatures that come by, though it still defends itself if it needs to.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Steady Saddle
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, DF
Range: touch
Targets: saddle touched
Duration: 1 minute/level (D)
Saving Throw: Will negates (harmless, object) Spell Resistance: yes (harmless, object)
"""
A saddle affected by this spell becomes more comfortable to sit in, and the magic stabilizes any shaking motion caused by riding at a high speed. For the duration of the spell, the penalty to use ranged weapons while mounted in the target saddle decreases by 2. This stacks with the benefit of the Mounted Archery feat and similar effects. Furthermore, the DC for any concentration check required as a result of the mount's movement decreases by 2.
Source: Villain Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Steal Breath
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one living creature
Duration: 1 round (see text)
Saving Throw: Fortitude negates; see text Spell Resistance: yes
"""
You pull the breath from a creature's lungs, dealing damage and leaving it unable to speak, use breath weapons, or cast spells with verbal components. If the target fails its saving throw, it takes 2d6 points of damage, and it cannot speak, use breath weapons, or anything else requiring breathing, and a visible line of swirling air leaves the target's mouth and enters your mouth. If, during the duration, the target moves out of range or line of effect to you, the spell immediately ends. This spell has no effect on creatures that do not need to breathe air.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Steal Size
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (a piece of iron shaped like a scale tray)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one humanoid creature larger than you
Duration: 1 minute/level (D)
Saving Throw: Fortitude negates Spell Resistance: yes
"""
This spell reduces the target's size by one size category, as if it were affected by reduce person. You grow in size by one category, as if affected by enlarge person ( if y ou c an b e targeted by that spell). If the spell is dispelled or otherwise ends for either you or the target, both you and the target return to your normal sizes.
Source: Giant Hunters Handbook
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Steal Years
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M (a handful of ash)
Range: touch
Targets: creature touched
Duration: 24 hours
Saving Throw: Fortitude negates Spell Resistance: yes
"""
You temporarily drain youth and vitality from the target and channel it into yourself. If the target fails its Fortitude save, it physically ages 1d4 years per two caster levels (maximum 5d4), and you decrease your age by the same number of years. If this changes the age category of you or the target, only adjust physical ability scores. This effect cannot bring your age to lower than the minimum age of adulthood for your race (see page 169 of the Core Rulebook). This stolen youth does not actually change your age or prolong your life; you will still die at your allotted time, no matter how youthful you appear. Likewise, the spell does not add to the target's true age, and cannot make the target die of old age. When the spell ends, the sudden weight of aging makes you fatigued for 1d4 hours.
Source: Blood Of The Night
You are skilled at avoiding detection, allowing you to slip past foes or strike from an unseen position. This skill covers hiding and moving silently.
!! Common Uses
!! Hide
Your Stealth check is opposed by the Perception check of anyone who might notice you. Creatures that fail to beat your Stealth check are not aware of you and treat you as if you had total concealment. You can move up to half your normal speed and use Stealth at no penalty. When moving at a speed greater than half but less than your normal speed, you take a –5 penalty. It’s impossible to use Stealth while attacking, running, or charging.
Breaking Stealth When you start your turn using Stealth, you can leave cover or concealment and remain unobserved as long as you succeed at a Stealth check and end your turn in cover or concealment. Your Stealth immediately ends after you make an attack roll, whether or not the attack is successful (except when sniping as noted below).
!! Create a Diversion to Hide
You can use Bluff to allow you to use Stealth. A successful Bluff check can give you the momentary diversion you need to attempt a Stealth check while people are aware of you.
!! Hide behind other Creatures
Large bodies that break your opponent’s line of sight can sometimes be just as useful as darkness for hiding your position.
''Special'': Normally the soft cover provided by other creatures is not sufficient to allow you to attempt a Stealth check. Soft cover provided by creatures at least one size category larger than you does allow you to attempt Stealth checks against other creatures not already aware of your presence at a –10 penalty. If the creature providing the cover knows which square you occupy and is trying to avoid concealing you, this penalty increases to –20.
You can also hide from a creature by staying under its own body if it is at least two size categories larger than you and you are in its space. Such attempts also take a –10 penalty, which increases to a –20 penalty if the creature is aware you are in the area. If the creature moves away from you, you are automatically revealed, unless you have readied an action to move with it.
!! Sniping
If you’ve already successfully used Stealth at least 10 feet from your target, you can make one ranged attack and then immediately use Stealth again. You take a –20 penalty on your Stealth check to maintain your obscured location.
!! Action
Usually none. Normally, you make a Stealth check as part of movement, so it doesn’t take a separate action. However, using Stealth immediately after a ranged attack (see Sniping, above) is a move action.
!! Modifiers
''Size ''
Creatures gain a bonus or penalty on Stealth checks based on their size: Fine +16, Diminutive +12, Tiny +8, Small +4, Medium +0, Large –4, Huge –8, Gargantuan –12, Colossal –16.
''Being Observed''
If people are observing you using any of their senses (but typically sight), you can’t use Stealth. Against most creatures, finding cover or concealment allows you to use Stealth. If your observers are momentarily distracted (such as by a Bluff check), you can attempt to use Stealth. While the others turn their attention from you, you can attempt a Stealth check if you can get to an unobserved place of some kind. This check, however, is made at a –10 penalty because you have to move fast.
''Magic ''
If you are invisible, you gain a +40 bonus on Stealth checks if you are immobile, or a +20 bonus on Stealth checks if you’re moving.
''Feats ''
If you have the Stealthy feat, you get a bonus on Stealth checks (see Feats).
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Stench Of Prey
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: medium (100 ft. + 10 ft./level)
Targets: one creature (see text)
Duration: 1 minute/level
Saving Throw: Fortitude negates (see text) Spell Resistance: yes
"""
The target exudes a strong odor that most predators recognize as the scent of helpless prey. The closest 1d4+1 predatory creatures within 30 feet must succeed at a Will save or start attacking the target (animals with the scent ability are affected if within 60 feet). If the predator is an animal, it can be called away from the target by a handler using the "down" trick (Core Rulebook 97) or any effect that suspends or dispels emotion or rage effects. This spell has no effect on constructs, undead, or creatures with the unnatural aura ability or effects that repel animals.
Source: Advanced Class Guide
! Stirge
|N Tiny magical beast|
|''Init'' +1 ''Senses'' [[Darkvision]] 60 ft, [[Low-Light Vision]], [[Scent]] ''Perception'' +1|
|!Defense |
|''AC'' 16, touch 16, flat-footed 12 |
|''hp'' 5 (1d10) |
|''Fort'' +2, ''Ref'' +6, ''Will'' +1 |
|!Offense |
|''Speed'' 10 ft., fly 40 ft. (average) |
|''Melee'' touch +7 (attach) |
|''Space'' 2-1/2, ''Reach'' 0 |
|''Special Attacks'' Blood Drain |
|!Statistics |
|''Str'' 3, ''Dex'' 19, ''Con'' 10, ''Int'' 1, ''Wis'' 12, ''Cha'' 6 |
|''Base Attack'' +1, ''CMB'' +3 (+11 grapple when attached), ''CMD'' 9 (17 vs. [[Trip]]) |
|''Feats'' Weapon Finesse |
|''Skills'' Fly +8, Stealth +16 |
|''SQ'' diseased |
|!Special Abilities |
|!''Attach'' (Ex) |
|When a stirge hits with a touch attack, its barbed legs latch onto the target, anchoring it in place. An attached stirge is effectively grappling its prey. The stirge loses its Dexterity bonus to AC and has an AC of 12, but holds on with great tenacity and inserts its proboscis into the grappled target’s flesh. A stirge has a +8 racial bonus to maintain its grapple on a foe once it is attached. An attached stirge can be struck with a weapon or grappled itself—if its prey manages to win a grapple check or Escape Artist check against it, the stirge is removed. |
|!''Blood Drain'' (Ex) |
|A stirge drains blood at the end of its turn if it is attached to a foe, inflicting 1 point of Constitution damage. Once a stirge has dealt 4 points of Constitution damage, it detaches and flies off to digest the meal. If its victim dies before the stirge’s appetite has been sated, the stirge detaches and seeks a new target. |
|!''Diseased'' (Ex) |
|Due to the stagnant swamps in which they live and their contact with the blood of numerous creatures, stirges are harbingers of disease. Any creature subjected to a stirge’s blood drain attack has a 10% chance of being exposed to filth fever, blinding sickness, or a similar disease (See Afflictions). Once this check is made, the victim can no longer be infected by this particular stirge, though attacks by different stirges are resolved normally and may result in multiple illnesses. |
Stirges are vicious, blood-drinking swamp pests that prey on wild animals, livestock, and unwary travelers. While weak individually, swarms of the creatures are capable of draining a man dry in minutes, leaving only a desiccated husk in their wake.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Stone Call
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [earth]
1 standard action V, S, DF
Range: medium (100 ft. + 10 ft./level)
Area: cylinder (40-ft. radius, 20 ft. high)
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
A rain of dirt, gravel, and small pebbles fills the area, dealing 2d6 points of bludgeoning damage to every creature in the area. This damage only occurs once, when the spell is cast. For the remaining duration of the spell, this debris covers the ground, making the entire area difficult terrain. At the end of the duration, the rocks disappear, leaving no aftereffects (other than the damage dealt).
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Stone Discus
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [earth]
1 standard action V, S, M (a pinch of earth or metal)
Range: close (25 ft. + 5 ft./2 levels)
Effect: one or more stone discuses
Duration: Instantaneous
Saving Throw: none Spell Resistance: no
"""
You create a stone discus, which flies at an enemy. You can create one discus, plus one additional discus at 7th and 11th caster levels. For each discus you create, you decide whether its edge is blunt (and deals bludgeoning damage) or sharp (and deals slashing damage). Each discus requires a ranged attack to hit and deals 4d6 points of damage. The discuses can be launched at more than one target, but all must be aimed at targets within 30 feet of each other and launched simultaneously. At caster level 5th, the discuses count as magic and silver. At caster level 10th, they also count as cold iron. At caster level 15th, they also count as adamantine.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Stone Fist
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M (a chip of granite)
Range: personal
Targets: you
Duration: 1 minute/level (D)
Saving Throw: Spell Resistance:
"""
This spell transforms your hands into living stone. While this spell is in effect, your unarmed strikes do not provoke attacks of opportunity and deal 1d6 points of lethal bludgeoning damage (1d4 if you are Small). In addition, your unarmed strikes ignore the hardness of any object with a hardness less than 8. Stone to flesh immediately dispels stone fist. Should you be the target of transmute rock to mud, this spell immediately ends and you take 4d6 points of damage.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Stone Shape
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M/DF (soft clay)
Range: touch
Targets: stone or stone object touched, up to 10 cu. ft. + 1 cu. ft./level
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
You can form an existing piece of stone into any shape that suits your purpose. While it's possible to make crude coffers, doors, and so forth with stone shape, fine detail isn't possible. There is a 30% chance that any shape including moving parts simply doesn't work.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Stone Shield
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation) [earth]
1 immediate action V, S, DF
Range: 0 ft.
Effect: stone wall whose area is one 5-ft. square
Duration: 1 round
Saving Throw: none Spell Resistance: no
"""
A 1-inch-thick slab of stone springs up from the ground, interposing itself between you and an opponent of your choice. The stone shield provides you with cover from that enemy (Core Rulebook 195) until the beginning of your next turn, granting you a +4 bonus to Armor Class and a +2 bonus on Reflex saving throws. If the opponent's attack misses you by 4 or less, the attack strikes the shield instead. The stone shield has hardness 8 and 15 hit points. If the shield is destroyed, the spell ends and the shield crumbles away into nothingness. Spells and effects that damage an area deal damage to the shield. You cannot use this spell if you are not adjacent to a large area of earth or stone such as the ground or a wall. At 4th level, a qinggong monk (Ultimate Magic) may select this spell as a ki power costing 1 ki point to activate.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Stone Throwing
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (powdered stone)
Range:
Targets: creature touched
Duration: 1 minute/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
The subject gains the rock throwing and rock catching abilities (Pathfinder RPG Bestiary 303). It can use these abilities with any solid, mostly inflexible object with a hardness of at least 5. The subject can hurl rocks up to two categories smaller than its own size. The range increment for this attack is 20 feet, and rocks can be hurled a maximum of 5 range increments. Damage is based on the size of the subject-1d8 points of damage for a Large creature, 1d6 for a Medium creature, or 1d4 for a Small creature-plus 1-1/2 times the thrower's Strength bonus. For every size category smaller than Large the subject is, it receives a cumulative -5 penalty on Reflex saves to catch rocks (or similar projectiles) thrown at it.
Source: Giant Hunters Handbook
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Storm Sight
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination (scrying)
1 round V, S, F (a storm, either natural or magical)
Range: personal
Targets: you
Duration: 1 minute/level (D)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You step into any magical or naturally occurring storm and commune directly with the power of the wind and rain. This spell allows the storm's power to fill you, granting you knowledge and images of what else lies within its reach. As long as you remain within the storm, you can concentrate on it for 1 minute to determine whether or not other living creatures with an Intelligence score of 3 or higher are caught in the storm within 400 feet of you. Due to the nature of the spell, you do not need to attempt concentration checks against violent wind or storms when casting the spell, but other elements that might disrupt spellcasting require checks as normal. While the spell is in effect, you no longer need to attempt concentration checks as a result of wind or storms for spells you cast or concentrate on. Once you've sensed creatures with this spell by concentrating for 1 minute, you can continue concentrating to learn more. After you concentrate for 1 additional round, the spell reveals to you via winds and rain the presence of any Small or larger living creature with an Intelligence of 3 or higher within 400 feet of you. After 2 consecutive rounds of concentration, you learn the approximate distance to the detected life forms from your current location. After 3 rounds of concentration, the rain and winds allow you to determine the approximate direction of each life form. Once you've concentrated in this way for 3 rounds, you gain a bonus equal to half your caster level on your next initiative check during the spell's duration.
Source: Adventurer's Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Strong Wings
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: touch
Targets: creature touched
Duration: 1 minute/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
The target's wings grow more powerful, causing its fly speed to increase by +10 feet and its maneuverability to improve by one category (to a maximum of good). This increase counts as an enhancement bonus. This spell has no effect on wingless creatures or winged creatures that cannot f ly.
Source: Advanced Race Guide
Subdue (DC 15): The companion can attempt to subdue opponents. Once the command is given, the companion makes all its natural attacks as nonlethal attacks (taking the typical –4 penalty on attack rolls when using normally lethal attacks) until ordered to do otherwise.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Summon Minor Ally
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (summoning)
1 round V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Effect: 1d3 summoned creatures
Duration: 1 round/level (D)
Saving Throw: none Spell Resistance: no
"""
This spell functions as summon nature's ally I, except you can summon 1d3 Tiny or smaller animals, such as bats, lizards, monkeys, rats, ravens, toads, or weasels. The summoned animals must all be the same type of creature.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Summon Nature's Ally I
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (summoning)
1 round V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Effect: one summoned creature
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
This spell summons to your side a natural creature (typically an animal, fey, magical beast, outsider with the elemental subtype, or a giant). The summoned ally appears where you designate and acts immediately, on your turn. It attacks your opponents to the best of its ability. If you can communicate with the creature, you can direct it not to attack, to attack particular enemies, or to perform other actions as you command. A summoned monster cannot summon or otherwise conjure another creature, nor can it use any teleportation or planar travel abilities. Creatures cannot be summoned into an environment that cannot support them. Creatures summoned using this spell cannot use spells or spell-like abilities that duplicate spells that have expensive material components (such as wish). The spell conjures one of the creatures from the 1st Level list on the Table below. You choose which kind of creature to summon, and you can change that choice each time you cast the spell. All the creatures on the table are neutral unless otherwise noted. When you use a summoning spell to summon a creature with an alignment or elemental subtype, it is a spell of that type. All creatures summoned with this spell without alignment subtypes have an alignment that matches yours, regardless of their usual alignment. Summoning these creatures makes the summoning spell's type match your alignment.
|!1st Level | !Subtype |
|[[Dire Rat]] | [[Animal]] |
|[[Dog]] | [[Animal]] |
|[[Dolphin]] | [[Animal]] |
|[[Eagle]] | [[Animal]] |
|[[Giant Centipede]] | [[Vermin]] |
|[[Fire Beetle]] | [[Vermin]] |
|[[Mite (gremlin)|Mite]] | [[Fey]] |
|[[Poisonous Frog]] | [[Animal]] |
|[[Pony (horse)|Pony]] | [[Animal]] |
|[[Stirge]] | [[Magical Beast]] |
|[[Viper (snake)|Viper]] | [[Animal]] |
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Summon Nature's Ally II
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (summoning)
1 round V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Effect: one summoned creature
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
This spell functions as [[Summon Nature's Ally I|Summon Nature's Ally I Spell]], except that you summon one 2nd-level creature or 1d3 [[1st-level|Summon Nature's Ally I Spell]] creatures of the same kind.
|!1st Level | !Subtype |
|[[Giant Ant (worker)|Giant Worker Ant]] | [[Vermin]] |
|[[Small Elemental]] | [[Elemental]] |
|[[Giant Frog]] | [[Animal]] |
|[[Giant Spider]] | [[Vermin]] |
|[[Goblin Dog]] | [[Animal]] |
|[[Horse]] | [[Animal]] |
|[[Hyena]] | [[Animal]] |
|[[Octopus]] | [[Animal]], [[Aquatic]] |
|[[Squid]] | [[Animal]], [[Aquatic]] |
|[[Wolf]] | [[Animal]] |
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Summon Nature's Ally III
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (summoning) [see text]
1 round V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Effect: one summoned creature
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
This spell functions like [[Summon Nature's Ally I|Summon Nature's Ally I Spell]], except that you can summon one 3rd-level creature, 1d3 [[2nd-level|Summon Nature's Ally II Spell]] creatures of the same kind, or 1d4+1 [[1st-level|Summon Nature's Ally I Spell]] creatures of the same kind.
|!1st Level | !Subtype |
|[[Aurochs]] | [[Animal]] |
|[[Boar]] | [[Animal]] |
|[[Cheetah]] | [[Animal]] |
|[[Constrictor Snake]] | [[Animal]] |
|[[Crocodile]] | [[Animal]] |
|[[Dire Bat]] | [[Animal]] |
|[[Electric Eel]] | [[Animal]], [[Aquatic]] |
|[[Giant Crab]] | [[Vermin]], [[Aquatic]] |
|[[Giant Ant (soldier)|Giant Soldier Ant]] | [[Vermin]] |
|[[Gorilla]] | [[Animal]] |
|[[Leopard]] | [[Animal]] |
|[[Monitor Lizard]] | [[Animal]] |
|[[Shark]] | [[Animal]], [[Aquatic]] |
|[[Wolverine]] | [[Animal]] |
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Summon Swarm
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (summoning)
1 round V, S, M/DF (a square of red cloth)
Range: close (25 ft. + 5 ft./2 levels)
Effect: one swarm of bats, rats, or spiders
Duration: concentration + 2 rounds
Saving Throw: none Spell Resistance: no
"""
You summon a swarm of bats, rats, or spiders (your choice), which attacks all other creatures within its area. (You may summon the swarm so that it shares the area of other creatures.) If no living creatures are within its area, the swarm attacks or pursues the nearest creature as best it can. The caster has no control over its target or direction of travel.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Summon Totem Creature
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (summoning)
10 minutes V, S, M/DF (a piece of bone from any one of your totem animals)
Range: close (25 ft. + 5 ft./2 levels)
Effect: one summoned creature
Duration: 1 hour (D)
Saving Throw: none Spell Resistance: no
"""
The Shoanti revere more than the deities of distant planes, but also the animals and natural forces of the rugged lands they call home. Shoanti spellcasters have learned ways to call upon the might of their quahs' totem creatures in times of need. A character must have been raised by the Shoanti and be considered part of a quah to be able to cast this spell. Characters with access to this spell can only summon creatures revered by the quah they are a part of, as noted on the following lists. Except as noted above, this spell functions as summon nature's ally III. Lyrune-Quah (Moon Clan): air elemental (small), 1d3 bats, wolf, 1d3 owls. Shadde-Quah (Axe Clan): 1d3 eagles, earth elemental (small), water elemental (small). Shriikirri-Quah (Hawk Clan): air elemental (small), 1d3+1 hawks (familiars), horse. Shundar-Quah (Spire Clan): air elemental (small), earth elemental (small), 1d3 eagles. Sklar-Quah (Sun Clan): 1d3 fire beetles, fire elemental (small), horse. Skoan-Quah (Skull Clan): 1d3+1 eagles (vultures), 1d3 fire beetles, 1d3 giant centipedes. Tamiir-Quah (Wind Clan): air elemental (small), 1d3 eagles, earth elemental (small).
Source: Humans Of Golarion
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Surefoot Boots
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, F (footwear)
Range: personal
Targets: you
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
You touch your boots, shoes, or other footwear and imbue them with the ability to find purchase on even the most treacherous ground. While the spell is in effect, the footwear's wearer treats any Acrobatics skill check to balance as though the wearer had rolled a 20.
Source: Adventurer's Armory 2
You are skilled at surviving in the wild and at navigating in the wilderness. You also excel at following trails and tracks left by others.
Several modifiers may apply to the Survival check, as given on Table: Survival DC Modifiers.
! Common Uses
!! Avoid Getting Lost/Avoid Natural Hazards
You can use the Survival skill to avoid getting lost or avoid natural hazards and you make a Survival check whenever the situation calls for one.
''Retry?''
To avoid getting lost or avoid natural hazards, you make a Survival check whenever the situation calls for one. Retries to avoid getting lost in a specific situation or to avoid a specific natural hazard are not allowed. For finding tracks, you can retry a failed check after 1 hour (outdoors) or 10 minutes (indoors) of searching.
!! Follow Tracks
To find tracks or to follow them for 1 mile requires a successful Survival check. You must make another Survival check every time the tracks become difficult to follow. If you are not trained in this skill, you can make untrained checks to find tracks, but you can follow them only if the DC for the task is 10 or lower. Alternatively, you can use the Perception skill to find a footprint or similar sign of a creature’s passage using the same DCs, but you can’t use Perception to follow tracks, even if someone else has already found them.
You move at half your normal speed while following tracks (or at your normal speed with a –5 penalty on the check, or at up to twice your normal speed with a –20 penalty on the check). The DC depends on the surface and the prevailing conditions, as given on table.
''Action''
A Survival check made to find tracks is at least a full-round action, and it may take even longer.
''Retry?''
For finding tracks, you can retry a failed check after 1 hour (outdoors) or 10 minutes (indoors) of searching.
Tracking Modifiers
"""
''Class'': A ranger gains a bonus on Survival checks when using this skill to find or follow the tracks of a favored enemy.
''Feats'': If you have the Self-Sufficient feat, you get a +2 bonus on all Survival checks. If you have 10 or more ranks in Survival, the bonus increases to +4.
''Size and Number of Creatures being Tracked'': See Table: Modifiers to Survival Checks when Tracking below.
''Terrain''
"""
|!Very Soft Ground |Any surface (fresh snow, thick dust, wet mud) that holds deep, clear impressions of footprints.|
|!Soft Ground |Any surface soft enough to yield to pressure, but firmer than wet mud or fresh snow, in which a creature leaves frequent but shallow footprints.|
|!Firm Ground |Most normal outdoor surfaces (such as lawns, fields, woods, and the like) or exceptionally soft or dirty indoor surfaces (thick rugs and very dirty or dusty floors). The creature might leave some traces (broken branches or tufts of hair), but it leaves only occasional or partial footprints.|
|!Hard Ground |Any surface that doesn’t hold footprints at all, such as bare rock or an indoor floor. Most streambeds fall into this category, since any footprints left behind are obscured or washed away. The creature leaves only traces (scuff marks or displaced pebbles).|
|!Base Survival DC’s to Track by Ground Condition Surface | !Survival DC |
|Very soft ground | 5 |
|Soft ground | 10 |
|Firm ground | 15 |
|Hard ground | 20 |
|!Modifiers to Survival Checks when Tracking Condition | !Survival DC Modifier |
|Every three creatures in the group being tracked | –1 |
|Size of creature or creatures being tracked^^1^^ |<|
| Fine | +8 |
| Diminutive | +4 |
| Tiny | +2 |
| Small | +1 |
| Medium | +0 |
| Large | –1 |
| Huge | –2 |
| Gargantuan | –4 |
| Colossal | –8 |
|Every 24 hours since the trail was made | +1 |
|Every hour of rain since the trail was made | +1 |
|Fresh snow since the trail was made | +10 |
|Poor visibility^^2^^ |<|
| Overcast or moonless night | +6 |
| Moonlight | +3 |
| Fog or precipitation | +3 |
|Tracked party hides trail (and moves at half speed) | +5 |
"""
^^1^^ For a group of mixed sizes, apply only the modifier for the largest size category.
^^2^^ Apply only the largest modifier from this category.
"""
!! Survive in the Wilderness
You can keep yourself and others safe and fed in the wild.
See Table: Survival DCs by Task for DCs for various tasks that require Survival checks.
''Action''
Varies. A single Survival check may represent activity over the course of hours or a full day.
''Retry?''
For getting along in the wild or for gaining the Fortitude save bonus noted in Table: Survival DCs by Task, you make a Survival check once every 24 hours. The result of that check applies until the next check is made.
| !Survival DC |!Task |
| 10 |Get along in the wild. Move up to half your overland speed while hunting and foraging (no food or water supplies needed). You can provide food and water for one other person for every 2 points by which your check result exceeds 10. |
| 15 |Gain a +2 bonus on all Fortitude saves against severe weather while moving up to half your overland speed, or gain a +4 bonus if you remain stationary. You may grant the same bonus to one other character for every 1 point by which your Survival check result exceeds 15. |
| 15 |Keep from getting lost or avoid natural hazards, such as quicksand. |
| 15 |Predict the weather up to 24 hours in advance. For every 5 points by which your Survival check result exceeds 15, you can predict the weather for one additional day in advance. |
!! Modifiers
"""
''Training'': If you are trained in Survival, you can automatically determine where true north lies in relation to yourself.
''Class'': A ranger gains a bonus on Survival checks when using this skill to find or follow the tracks of a favored enemy.
''Feats'': If you have the Self-Sufficient feat, you get a +2 bonus on all Survival checks. If you have 10 or more ranks in Survival, the bonus increases to +4.
"""
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Swarm Of Fangs
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (summoning)
1 round V, S, M (a lizard's tooth)
Range: close (25 ft. + 5 ft./2 levels)
Effect: one swarm of animate teeth
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
You summon a swarm consisting of thousands of animate, flying teeth in a 10-foot-by-10-foot cube. These fangs attack all creatures within the swarm's area. You can summon the swarm so that it shares an area with other creatures, and you can move the swarm up to 40 feet each round as a move action. If you choose not to move the swarm, it automatically moves up to 40 feet to envelop the nearest creature (including you) if it has not already done so. Creatures caught inside the swarm's area of effect take 2d6 points of damage. The fangs deal damage to all creatures sharing their area when they first appear, and at the end of their movement each round.
Source: Monster Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Sweat Poison
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
necromancy
1 standard action V, S
Range: personal
Targets: you
Duration: 1 minute/level (D)
Saving Throw: none Spell Resistance: no
"""
Glands along your neck, back, or wrists swell and exude a viscous injury poison (save Fort DC 14; frequency 1/round for 4 rounds; effect 1d2 Str; cure 1 save). You are not immune to this poison, and unless you have the poison use class feature or a similar ability, you are at risk of poisoning yourself. You can apply this poison to a weapon as a move action, and each dose you apply reduces the remaining duration of this spell by 1 minute. If doing so would reduce the remaining duration to 0 minutes or less, the spell ends, and any applied poisons retain their potency only until the end of your turn. When you apply the poison, you can choose to reduce the spell's remaining duration by 2 or more additional minutes (maximum = your caster level) in order to enhance that dose of poison. For every 2 minutes of duration expended, the poison's save DC increases by 1, the number of rounds it lasts increases by 1/2 (round down), and the number of saves required to cure it increases by 1/4 (round down). If you have the toxic skin alternate racial trait (Advanced Race Guide 190), you can expend one daily use as a free action to enhance this spell's poison's damage to 1d3 Strength and its starting save DC to 15.
Source: Blood Of The Beast
[img[KnutSwim.jpg]]
You know how to swim and can do so even in stormy water.
!! Common Uses
!!! Swim
Make a Swim check once per round while you are in the water. Success means you may swim at up to half your speed (as a full-round action) or at a quarter of your speed (as a move action). If you fail by 4 or less, you make no progress. If you fail by 5 or more, you go underwater.
If you are underwater, either because you failed a Swim check or because you are swimming underwater intentionally, you must hold your breath. You can hold your breath for a number of rounds equal to twice your Constitution score, but only if you do nothing other than take move actions or free actions. If you take a standard action or a full-round action (such as making an attack), the remainder of the duration for which you can hold your breath is reduced by 1 round. (Effectively, a character in combat can hold his breath only half as long as normal.) After that period of time, you must make a DC 10 Constitution check every round to continue holding your breath. Each round, the DC for that check increases by 1. If you fail the Constitution check, you begin to drown. The DC for the Swim check depends on the water, as given on the table below.
|!Water | !Swim DC |
|Calm water | 10 |
|Rough water | 15 |
|Stormy water | 20* |
"""
* You can’t take 10 on a Swim check in stormy water, even if you aren’t otherwise being threatened or distracted.
"""
Each hour that you swim, you must make a DC 20 Swim check or take 1d6 points of nonlethal damage from fatigue.
''Action''
A successful Swim check allows you to swim a quarter of your speed as a move action or half your speed as a full-round action.
!! Modifiers
''Swim Speed''
A creature with a swim speed can move through water at its indicated speed without making Swim checks. It gains a +8 racial bonus on any Swim check to perform a special action or avoid a hazard. The creature can always choose to take 10 on a Swim check, even if distracted or endangered when swimming. Such a creature can use the run action while swimming, provided that it swims in a straight line.
''Feats''
If you have the Athletic feat, you get a +2 bonus on Swim skill checks. If you have 10 or more ranks in Swim, the bonus increases to +4.
''Size''
The rules for familiars say “Small animals like these use Dexterity to modify Climb and Swim checks.” Note however, that not all familiars are size Small. For example, bats are size Diminutive and cats are size Tiny. Therefore our guess is that the sentence, “Small animals like these…” isn’t referring specifically to size “Small” but instead to creatures size Tiny or smaller (note though that not even all creatures size Tiny or smaller appear to have this applied to their skills.)
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Sylvan Hideaway
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (creation)
1 standard action V, S, M (one pound of unworked stone or wood)
Range: touch
Targets: one 5-foot square of touched earth
Duration: 2 hours/level (D)
Saving Throw: none Spell Resistance: no
"""
When this spell is cast on a natural, unworked surface, it creates an extradimensional underground space large enough to comfortably hold two creatures of any size per caster level (maximum 12). The room is sealed by a 5-foot-square camouflaged trap door that can be locked from within. (This trap door has hardness 10 and 20 hit points per caster level; the Perception DC to see the hidden trap door equals the spell's save DC.) The door and room are made of the same material of the material component used to cast the spell. You can choose the shape and configuration of the room when you create it; however, any furnishings (tables, beds, etc.) in the room are made of the same material as the room and cannot be moved once created. When the spell ends, anything inside the space is ejected to the surface in the nearest available square.
Source: AP 116
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Tail Current
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: 120 ft.
Targets: one or more creatures, no two of which can be more than 120 feet apart
Duration: 1 hour/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions as tailwind except it creates a helpful current in water instead of in the air. It grants free movement while swimming rather than while flying and functions only underwater.
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Tailwind
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S
Range: 120 ft.
Targets: one or more creatures, no two of which can be more than 120 feet apart
Duration: 1 hour/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You compel the wind to push the targets in a direction of your choice. The subjects can hustle during local and overland movement without risk of fatigue. If the subjects are flying, the first 20 feet of movement each round in the chosen direction does not count against their movement for the round. Each creature remains affected only while within 120 feet of every other subject. You can change the tailwind's direction once per hour by concentrating as a standard action. This spell has no effect underwater.
Source: Ultimate Wilderness
''Aura'' moderate conjuration; ''CL'' 9th
''Slot'' —; ''Price'' 16,000 gp
DESCRIPTION
This small sack appears empty. Anyone reaching into the bag feels a small, fuzzy ball. If the ball is removed and tossed up to 20 feet away, it turns into an animal. The animal serves the character who drew it from the bag for 10 minutes (or until slain or ordered back into the bag), at which point it disappears. It can follow any of the commands described in the [[Handle Animal]] skill.
Each of the three kinds of bags of tricks produces a different set of animals. Use the following table to determine what animals can be drawn out of each.
|!Tan Bag|<|
|!d% |!Animal |
|01–30 |[[Grizzly Bear]] |
|31–60 |[[Lion]] |
|61–80 |[[Heavy Horse]] |
|81–90 |[[Tiger]] |
|91–100 |[[Rhinoceros]] |
The heavy horse appears with harness and tack and accepts the character who drew it from the bag as a rider.
Animals produced are always random, and only one may exist at a time. Up to 10 Animals can be drawn from the bag each week, but no more than two per day.
!! Other Bags
''Aura'' faint (gray or rust) or moderate (tan) conjuration; ''CL'' 3rd (gray), 5th (rust), 9th (tan)
''Slot'' —; ''Price'' 3,400 gp (gray); 8,500 gp (rust); 16,000 gp (tan)
Each of the three kinds of bags of tricks produces a different set of animals. Use the following table to determine what animals can be drawn out of each.
|!Gray Bag |<|!Rust Bag|<|!Tan Bag|<|
|!d% |!Animal |!d% |!Animal |!d% |!Animal |
|01–30 |Bat |01–30 |Wolverine |01–30 |Grizzly bear |
|31–60 |Rat |31–60 |Wolf |31–60 |Lion |
|61–75 |Cat |61–85 |Boar |61–80 |Heavy horse |
|76–90 |Weasel |86–100 |Leopard |81–90 |Tiger |
|91–100 |Riding dog |— |— |91–100 |Rhinoceros |
The heavy horse appears with harness and tack and accepts the character who drew it from the bag as a rider.
Animals produced are always random, and only one may exist at a time. Up to 10 Animals can be drawn from the bag each week, but no more than two per day.
CONSTRUCTION REQUIREMENTS
''Feats'' Craft Wondrous Item; ''Spells'' summon nature’s ally II (gray), summon nature’s ally III (rust), or summon nature’s ally V (tan); ''Cost'' 1,700 gp (gray); 4,250 gp (rust); 8,000 gp (tan)
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Tar Ball
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a tiny ball of bitumen)
Range: close (25 ft. + 5 ft./2 levels)
Effect: ranged attack
Duration: instantaneous
Saving Throw: none Spell Resistance: no
"""
You create a sticky ball of burning tar that you can hurl at your enemies as a ranged attack. If the tar ball strikes, it deals 1d4 points of fire damage + your Strength modifier, and splashes the target with hot, sticky tar. The tar deals 1d4 points of fire damage each round on the creature's turn for the next 1d4 rounds and gives the target a -2 penalty to Dexterity for that duration. If desired, the target can use a full-round action to attempt to extinguish or cool the tar before taking this additional damage. Extinguishing or cooling the tar requires a DC 15 Reflex save or at least 1 gallon of nonflammable liquid. Rolling on the ground provides the target a +2 bonus on the save. Leaping into a lake or magically cooling the target automatically ends the effect.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Tears To Wine
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M (a single grape)
Range: 10 ft.
Targets: 1 cu. ft./2 levels of liquid (see text)
Duration: 10 minutes/level
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
Legend claims runelords used this spell to literally benefit from drinking the tears of their captured foes. This spell turns nonmagic liquids-including spoiled, rotten, diseased, poisonous, or otherwise contaminated drinks, tears, seawater, and similar fluids-into mead or wine of average quality. This spell does not prevent subsequent natural decay or spoilage. Unholy water and similar liquids of significance are spoiled by tears to wine, but the spell has no effect on creatures of any type or on magic potions. Creatures that drink the mead or wine created by this spell become sharp-witted and clear-minded, gaining a +2 enhancement bonus on all Intelligence- and Wisdom-based skill checks. This increases to a +5 bonus at caster level 9th, and to +10 (the maximum) at caster level 15th.
Source: Arcane Anthology
''Thedrin, Glacier Druid'' CR 8
XP 4,800
"""
Human Druid 9
CN Medium humanoid (human)
''Init'' +0; ''Senses'' [[Perception]] +13
''DEFENSE''
''AC'' 22, touch 10, flat-footed 22 (+7 armor, +3 natural, +2 shield)
''hp'' 69 (9d8+25)
''Fort'' +8, ''Ref'' +5, ''Will'' +11
''Resist cold'' 10
''OFFENSE''
''Speed'' 20 ft.
''Melee'' +1 longspear +10/+5 (1d8+4)
(Brace, Reach)
''Ranged'' mwk shortspear +7/+2 (1d6+3)
(Thrown)
''Special Attacks'' wild shape 3/day
''Domain Spell-Like Abilities'' (CL 9th; concentration +14)
8/day—[[icicle|Elemental Ray]] (30’ Range Touch, 1d6+4 Cold)
''Druid Spells Prepared'' (CL 9th; concentration +14)
5th—hallow (DC 20), blizzard (FB), wall of ice^^D^^
4th—dispel magic, hibernal healing (FB), grove of respite, ice storm^^D^^ (DC 19)
3rd—greater magic fang (3), thin ice (as spike growth but only in arctic) (DC 18), sleet storm^^D^^
2nd—barkskin (2), bull's strength (2), fog cloud, chill metal^^D^^
1st—cure light wounds (2), snow shape (2), chill touch^^D^^, shillelagh (Frozen Spear), snowsight (FB)
0th (at will)—create water, guidance, know direction, light
^^D^^ Domain spell; ''Domain'' [[Cold|Cold Domain]]
''TACTICS''
''Before Combat'' The druid casts barkskin and bull's strength.
''During Combat'' The druid casts wall of ice between his opponents to separate them. On the following rounds, he spontaneously casts summoning spells, bolstering summoned creatures with greater magic fang. He eventually wild shapes into a 9 headed cryohydra to enter melee.
''Cryohydra Statistics''
With greater magic fang (using all gets +1) and bull's strength, the druid's statistics are AC 21, touch 8, flat-footed 23; Melee 9 bites +13 (1d8+7 +1d6+4 Cold); Str 23, Dex 6; CMB +14; CMD 22; low-light, scent, darkvision 60’, pounce, 10’ reach, swim 20’
''STATISTICS''
''Str'' 13, ''Dex'' 10, ''Con'' 14, ''Int'' 8, ''Wis'' 20, ''Cha'' 13
''Base Atk'' +6; ''CMB'' +7; ''CMD'' 17
''Feats'' Augment Summoning, Lightning Reflexes, Domain Strike, Frozen Wildshape (FB), Spell Focus (conjuration), Vital Strike
, Natural Spell
''Skills'' Craft (ice sculpting) +6, Fly +4, Handle Animal +6, Knowledge (geography) +5, Knowledge (nature) +9, Perception +13, Spellcraft +4, Survival +18, Swim +6
''Languages'' Common
, Ulutiun, Druidic, Sylvan
''SQ'' nature bond (Water Domain), nature sense, icewalking, wild empathy +10, arctic endurance
, snowcaster
''Combat Gear'' potion of cure serious wounds, scroll of lesser restoration, scroll of protection from energy, scroll of wall of fire;
''Other Gear'' +1 dragonhide wild breastplate, masterwork heavy wooden shield, +1 longspear, masterwork shortspears (3), headband of inspired wisdom +2, holly and mistletoe, spell component pouch, 60 gp
"""
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Thorn Javelin
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation) [poison]
1 standard action V, S
Range: 0 ft.
Effect: javelin-like thorn
Duration: 1 minute/level (D)
Saving Throw: none Spell Resistance: no
"""
A wooden thorn the size of a javelin (appropriate for your size) appears in your open hand. You can wield this thorn as a javelin, and you are proficient in its use. Any creature struck by the javelin must succeed at a Fortitude save or be sickened for 1 round. If you throw the javelin, another one appears in your hand. Any javelin that leaves your grasp disappears at the end of your turn. Each javelin attack you make reduces the spell's remaining duration by 1 minute. If an attack reduces the remaining duration to 0 minutes or less, the spell ends after that attack resolves.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Thorny Entanglement
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, DF
Range: long (400 ft. + 40 ft./level)
Area: plants in a 40-ft.-radius spread
Duration: 1 min./level (D)
Saving Throw: Reflex partial (see text) Spell Resistance: no
"""
This spell functions as entangle, except the plants also grow thorns and can fling them up to 15 feet. Any creature that moves within 15 feet of the spell's area is attacked once on its turn by the animated plants. The plants use your caster level as their base attack bonus and add your spellability score modifier (Intelligence for witches; Wisdom for druids, rangers, and shamans) to the attack roll. A volley of thorns counts as a thrown weapon and deals 2d6 points of piercing damage on a successful hit. A creature that enters the spell's area or ends its turn there automatically takes 2d6 points of piercing damage.
Source: Advanced Class Guide
Throw Rider (DC 15): The animal can attempt to fling a creature riding it to the ground. Treat this as a trip combat maneuver that applies to all creatures riding the animal, and that does not provoke attacks of opportunity. An animal that knows the throw rider and exclusive tricks can be instructed to attempt to automatically throw anyone other than its trainer who attempts to ride it.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Thunderstomp
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
evocation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: instantaneous
Saving Throw: none Spell Resistance: yes
"""
You stomp your foot or strike your weapon against the ground or floor, creating a ripple of power that you can use to trip a creature. Attempt the combat maneuver check to trip the target, but instead of your base attack bonus you can use your caster level, and instead of your Strength modifier you can use your spellcasting ability score modifier (Intelligence for magi and wizards; Wisdom for druids and rangers; Charisma for bloodragers and sorcerers). This trip attempt does not provoke an attack of opportunity. This spell has no effect if you cannot reach the ground or floor, or if your target is not in contact with the ground or floor.
Source: Advanced Class Guide
! Tiger
|N Large animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +8|
|!Defense |
|''AC'' 14, touch 11, flat-footed 12 |
|''hp'' 45 (6d8+18) |
|''Fort'' +8, ''Ref'' +7, ''Will'' +3 |
|!Offense |
|''Speed'' 40 ft. |
|''Melee'' 2 claws +10 (1d8+6 plus grab), bite +9 (2d6+6 plus grab) |
|''Space'' 10, ''Reach'' 5 |
|''Special Attacks'' [[Pounce]], [[Rake]] (2 claws +10, 1d8+6) |
|!Statistics |
|''Str'' 23, ''Dex'' 15, ''Con'' 17, ''Int'' 2, ''Wis'' 12, ''Cha'' 6 |
|''Base Attack'' +4, ''CMB'' +11 (+15 grapple), ''CMD'' 23 (27 vs. [[Trip]]) |
|''Feats'' Improved Initiative, Skill Focus (Perception), Weapon Focus (claw) |
|''Skills'' Acrobatics +10, Perception +8, Stealth +7 (+11 in areas of tall grass), Swim +11 |
|''Racial Modifiers'' +4 Acrobatics, +4 Stealth (+8 in tall grass) |
|!Special Abilities |
Tigers stand more than 3 feet tall at the shoulder and are about 9 feet long. They weigh from 400 to 600 pounds.
Tigers are usually the top animal predators in their territories, and have been known to kill bears, crocodiles, giant snakes, wolves, and even other great cats. Even humanoids are far from safe, especially in cases where a tiger has developed a taste for humanoid flesh. Tigers prefer terrain with plenty of cover and proximity to water as their hunting grounds.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Touch Of Bloodletting
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
necromancy
1 standard action V, S
Range: touch
Targets: living creature touched
Duration: 1 round/level
Saving Throw: Will negates Spell Resistance: yes
"""
This spell causes any existing wounds that the target possesses to bleed profusely. If the creature's current total hit points are less than its maximum, this spell causes the creature to take 1 point of bleed damage each round and become exhausted for the duration of the spell. A successful DC 15 Heal check or any spell that cures hit point damage negates the effects of this spell.
Source: Inner Sea Gods
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Touch Of Combustion
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
evocation
1 standard action V, S
Range: touch
Targets: creature or object touched
Duration: instantaneous
Saving Throw: Reflex negates; see text Spell Resistance: yes
"""
Your successful melee touch attack causes the target to ignite in a violent burst of flame, dealing 1d6 points of fire damage. If it fails its saving throw, the target also catches on fire (Core Rulebook 444). If the target catches fire, on the first round thereafter, creatures adjacent to it (including you) must each succeed at a Reflex save or take 1d4 points of fire damage.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Touch of Fatigue
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
necromancy
1 standard action V, S, M (a drop of sweat)
Range: touch
Targets: creature touched
Duration: 1 round/level
Saving Throw: Fortitude negates Spell Resistance: yes
"""
You channel negative energy through your touch, fatiguing the target. You must succeed on a touch attack to strike a target. The subject is immediately [[fatigued|Fatigued]] for the spell's duration. This spell has no effect on a creature that is already [[fatigued|Fatigued]]. Unlike with normal fatigue, the effect ends as soon as the spell's duration expires.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Touch of the Sea
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M (a fish scale)
Range: touch
Targets: creature touched
Duration: 1 minute/level
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
You cause webs to grow between the target's fingers and its feet to transform into flippers, granting a swim speed of 30 feet along with the standard +8 bonus on Swim checks and the ability to take 10 even if distracted or endangered. You can also use the run action while swimming, provided you swim in a straight line. This transformation causes any boots or gloves the target is wearing to meld into its form (although magic items with a continuous effect continue to function). This spell does not grant the target any ability to breathe water.
Source: APG
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Toxic Rupture
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
necromancy
1 standard action V, S, M/DF (a viper's fang)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one poisonous creature
Duration: instantaneous
Saving Throw: Fortitude negates; see text Spell Resistance: yes
"""
With a squeezing hand gesture, you cause internal bleeding in the target creature's venom glands or similar organs. The target must attempt a saving throw against its own poison using the DC for this spell. If it fails, the creature is poisoned and suffers the full effect of its poison. Any subsequent saving throws that the target must attempt against the poison use the normal DC for the poison rather than this spell's DC.
Source: Dirty Tactics Toolbox
Track (DC 20) The animal tracks the scent presented to it. (This requires the animal to have the scent ability)
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Tracking Mark
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
evocation
1 standard action S, DF
Range: long (400 ft. + 40 ft./level)
Targets: one creature
Duration: 10 minutes/level (D)
Saving Throw: Will negates Spell Resistance: yes
"""
You gain a supernatural ability to detect tracks and other clues left behind by the target. You treat the DCs of all Survival checks made to track the target as if they were 5 lower than normal, and you gain a +5 bonus on Perception checks made to notice the target if it is using Stealth or recognize it if it is using Disguise.
Source: Inner Sea Gods
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Train Animal
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
enchantment (charm) [mind-affecting]
10 minutes V, S, DF
Range: touch
Targets: one animal touched
Duration: 1 hour/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
While this spell is in effect, the affected animal gains a number of additional tricks equal to half your caster level (maximum five). This spell does not modify an animal's attitude toward you, nor does it guarantee that an animal will cooperate when instructed to perform the newly learned tricks.
Source: Spell Compendium
Ulrik was trained as a Druid. He learned how to survive on the ice without the traditional aids one would find in a tribe. He was asked to choose how he would connect to Nature, either by bonding with one of the domains of [[Ulutiu]] or by establishing a link with a companion beast. When Ulrik received the prerequisit training in both areas before making the choice, Ulrik naturally gravitated away from the Animal, Law, Ocean, Protection and took to the [[Cold Domain]] with unnatural ease. However, when the time came, Thedrin warned him that he would only be able to choose one, though if one follows the Domain of Animals, one can eventually establish a connection to a beast once the bond grows stronger.
However, when the time came to choose, Ulrik wanted to form a connection to a beast companion. However, his Nature Magic was already showing signs of a full link to the [[Cold Domain]] giving him access to the spell [[Frostbite|Frostbite Spell]] without using up his normal spells. So Thedrin tested him in the Cold Domain and he was able to establish a second link to Nature.
Sent out on to the ice to complete his [[Bond with a Beast|Nature Bond]], Ulrik met a nanuk, or winter bear on the ice. They faced each other, both starving. Ulrik was forced to keep himself away from the young bear while using his [[Wild Empathy]] to calm the bear. Ulrik is still alive today because he won out over the bear and now Knut is his loyal brother.
Later, Ulrik would visit the Wild Woman, Fenwir who taught him the magick Arcane. She told him of the [[Planes|Know Planes]] and how his blood is touched by the outer Elements, in particular, Cold at the Air-edge of Water. Now Ulrik can pull power from his [[Elemental Heritage|Elemental Bloodline]] and cast a few spells of Arcane magic, though he needs no book of spells or witch's familiar to do so.
<$list filter="[tag[Trait]!tag[Knut]sort[title]]">
<$transclude mode="block"/>
</$list>
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Tree Shape
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF
Range: personal
Targets: you
Duration: 1 hour/level
Saving Throw: Spell Resistance:
"""
This spell allows you to assume the form of a Large living tree or shrub or a Large dead tree trunk with a small number of limbs. The exact type of tree, as well as its appearance, is completely under your control. Even the closest inspection cannot reveal that the tree in question is actually a magically concealed creature. To all normal tests you are, in fact, a tree or shrub, although a detect magic spell reveals a faint transmutation on the tree. While in tree form, you can observe all that transpires around you just as if you were in your normal form, and your hit points and save bonuses remain unaffected. You gain a +10 natural armor bonus to AC but have an effective Dexterity score of 0 and a speed of 0 feet. You are immune to critical hits while in tree form. All clothing and gear carried or worn changes with you. You can dismiss tree shape as a free action (instead of as a standard action).
Source: PFRPG Core
!! Knut Tricks
<$list filter="[tag[Trick]tag[Knut]sort[title]]">
<$transclude mode="block"/>
</$list>
[[See Also Trip Maneuver|Trip Maneuver]]
A creature with the trip special attack can attempt to trip its opponent as a free action without provoking an attack of opportunity if it hits with the specified attack. If the attempt fails, the creature is not tripped in return.
Format: trip (bite); Location: individual attacks.
You can attempt to trip your opponent in place of a melee attack. You can only trip an opponent who is no more than one size category larger than you. If you do not have the Improved Trip feat, or a similar ability, initiating a trip provokes an attack of opportunity from the target of your maneuver.
If your attack exceeds the target’s CMD, the target is knocked prone. If your attack fails by 10 or more, you are knocked prone instead. If the target has more than two legs, add +2 to the DC of the combat maneuver attack roll for each additional leg it has. Some creatures—such as [[oozes|Ooze]], creatures without legs, and flying creatures—cannot be tripped.
!! Trip Weapons
''If you want to make a trip combat maneuver, do you have to use a weapon with the trip special feature?''
''No''. When making a trip combat maneuver, you don’t have to use a weapon with the trip special feature–you can use any weapon. For example, you can trip with a longsword or an unarmed strike, even though those weapons don’t have the trip special feature. Note that there is an advantage to using a weapon with the trip special feature (a.k.a. a “trip weapon”) when making a trip combat maneuver: if your trip attack fails by 10 or more, you can drop the trip weapon instead of being knocked prone.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Tripvine
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S
Range: touch
Targets: 10-foot-long rope or vine
Duration: 10 minutes/level
Saving Throw: Reflex negates Spell Resistance: no
"""
You animate a rope, vine, or similar object so that it attempts to trip any creature that comes near. The rope attacks anything in a 10-foot-square area you designate. The rope does not provoke an attack of opportunity. Its CMB is equal to your caster level +2. A tripped target that was running, jumping, or charging takes 1d6 points of nonlethal damage. Creatures aware of the tripvine gain a +4 bonus to their CMD against it. The Green Faith created this spell, but it is now common.
Source: Faction Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Twisted Futures
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 standard action V, S, M (a small die with the faces scratched off)
Range: close (25 ft. + 5ft./2 levels)
Targets: one creature/level, no two of which can be more than 30 ft. apart
Duration: 1 round/level
Saving Throw: Will negates Spell Resistance: yes
"""
By rearranging the threads of fate, you disrupt fortunate outcomes for other creatures. A creature affected by this spell is unable to benefit from effects that grant the ability to roll multiple times and take the higher result (like the swashbuckler's charmed life ability) or to choose the die result in lieu of rolling (like the wizard's prescience school power or the cyclops's flash of insight ability). This doesn't affect abilities that force a creature to take the lower of two rolls, such as ill omen or a pugwampi's unluck aura (Pathfinder RPG Bestiary 2 144). A cyclops can't use its flash of insight ability to save against this spell.
Source: Giant Hunters Handbook
| !Ulutiu |<|<|<|<|<|
| !(Demipower) |<|<|<|<|<|
| !Basic information |<|<|<|<|<|
|Titles |
|~|The Eternal Sleeper^^1^^ |<|<|<|<|
|~|Father of Giants' Kin^^1^^ |<|<|<|<|
|~|The Lord in the Ice^^1^^ |<|<|<|<|
|!3e2e |<|<|<|<|<|
|3rd Edition Statistics^^^1,2,3^^ |<|<|<|<|<|
|Power Level |Demipower |<|<|<|<|
|Alignment |Lawful neutral |<|<|<|<|
|Symbol |[[Necklace of blue and white ice crystals|Bone Holy Symbol]] |<|<|<|<|
|Home Plane |Astral Plane |<|<|<|<|
|Portfolio |Arctic dwellers |<|<|<|<|
|~|Glaciers |<|<|<|<|
|~|Polar environments |<|<|<|<|
|Domains |Animal, Cold, Law, Ocean, Protection |<|<|<|<|
|Worshipers |Arctic dwellers, druids, historians, leaders, teachers, rangers |<|<|<|<|
|Worshiper alignments |
|~| |<|<|<|<|
|~|| !LG | NG | CG ||
|~|| !LN | N | CN ||
|~|| !LE | NE | CE ||
|~| |<|<|<|<|
|Favored weapon |Harpoon of the Cold Sea (longspear or shortspear) |<|<|<|<|
''Ulutiu'' (pronounced: /uːˈluːtiuː/ oo-LOO-tee-oo^^1^^), also known as ''The Lord in the Ice'' or ''The Eternal Sleeper'', was the lawful neutral father of the giant-kin races and the god of glaciers, polar environments, and arctic dwellers. His domains consisted of animals, cold, law, ocean and protection. Ulutiu's symbol was a necklace of blue and white ice crystals and his divine realm was where he slept in the Astral Plane.^^1^^
!!Worshipers
In general, around 1372 DR, the clergy of Ulutiu acted as both leaders and protectors of their societies, often providing teaching and maintaining traditions in their communities. These communities were limited to the northern areas of Faerûn such as the people of the Great Glacier and the Ice Hunters of the Savage Frontier.^^1^^ Ulutiu was worshiped by the arctic Ulutiun peoples of the Great Glacier and the Sea of Moving Ice of Icewind Dale.^^citation needed^^
As of 1372 DR, in the Great Glacier, Ulutiu's clerics and druids presided over villages in an autocratic fashion, often harshly, resulting in orderly societies. In the Ice Hunter society in the Savage Frontier, although there was no official edict, Ulutiu's clerics and druids led their communities by consensus.^^1^^
The clergy of Ulutiu prayed at dawn, midday and sunset, receiving spells at midday, by covering their eyes and looking towards the sky. In most places their edicts were called kaiurit and were different all over depending on the dreams experienced by the clergy. However, in Ice Hunter society, the kaitotem ritual was observed, in which they captured an animal and raised it on a totem for a year before setting it free to serve the totem spirits.^^1^^
!! Relationships
''Auril, the Frostmaiden'', was siphoning power from him, slowly as not to wake him, but she was continually weakening him so that eventually he will die, then she may subsume his portfolio.^^5^^
!!Dogma
Ulutiu encouraged respect for animals because they share the same morals and emotions as people, despite showing them in different ways. All people were equals, except for Ulutiu's clergy who were entitled to positions of leadership so that Ulutiu's wisdom could be distributed. In the Great Glacier, Ulutiu's worshipers believed it a blasphemy to use magic not granted by Ulutiu.^^1^^
!!History
Around -25500 DR Ulutiu began an affair with Othea, wife of Annam All-Father, leading to the firbolg, fomorian, verbeeg and the voadkyn.^^6,7^^ Ulutiu voluntarily exiled himself from Faerûn in -2550 DR^^8^^ when his affair with Othea was discovered by Annam.[citation needed] According to Skrom Jek's The Meanderings Upon the Friezes of Hotun-Shûl, Ulutiu's corpse was placed on a barge that floated into the Cold Ocean and when it sank, his magical amulet froze the water, creating the Great Glacier and the Endless Ice Sea,^^9^^ a process which took 75 years.^^10^^
Since Othea's death, Ulutiu seemed content to stay away from Toril, but he would likely return if Othea could be brought back.^^1^^
During the Spellplague, the goddess Auril had taken the body of Ulutiu and kept it in her realm within the Deep Wilds.^^11^^
!!Publication history
Advanced Dungeons & Dragons 2nd edition (1989-1999)Edit
Ulutiu is first mentioned in the book The Great Glacier (1992).[12] His relationship to the gods of the giants was explored in Giantcraft (1995).[13]
Ulutiu is further detailed in Powers & Pantheons (1997).[4]
Dungeons & Dragons 3rd edition (2000-2007)Edit
Ulutiu appears in 3rd edition in the Forgotten Realms Campaign Setting book (2001),[14] and was further described in Faiths and Pantheons (2002).[15]
A non-Realms specific version of Ulutiu appeared in the book Frostburn (2004).[16]
References
"""
^^1^^ ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 Eric L. Boyd, Erik Mona (May 2002). Faiths and Pantheons. (Wizards of the Coast), p. 109. ISBN 0-7869-2759-3.
^^2^^ ↑ Ed Greenwood, Sean K. Reynolds, Skip Williams, Rob Heinsoo (June 2001). Forgotten Realms Campaign Setting 3rd edition. (Wizards of the Coast), p. 235. ISBN 0-7869-1836-5.
^^3^^ ↑ Richard Baker, James Wyatt (March 2004). Player's Guide to Faerûn. (Wizards of the Coast), p. 84. ISBN 0-7869-3134-5.
^^4^^ ↑ 4.0 4.1 Eric L. Boyd (1997). Powers and Pantheons. (TSR, Inc), pp. 62–66. ISBN 0-7869-0657-X.
^^5^^ ↑ Eric L. Boyd, Erik Mona (May 2002). Faiths and Pantheons. (Wizards of the Coast), p. 91. ISBN 0-7869-2759-3.
^^6^^ ↑ Ray Winninger (August 1995). Giantcraft. (TSR, Inc), pp. 9–10. ISBN 0-7869-0163-2.
^^7^^ ↑ Brian R. James and Ed Greenwood (September, 2007). The Grand History of the Realms. (Wizards of the Coast), p. 8. ISBN 978-0-7869-4731-7.
^^8^^ ↑ Brian R. James and Ed Greenwood (September, 2007). The Grand History of the Realms. (Wizards of the Coast), p. 31. ISBN 978-0-7869-4731-7.
^^9^^ ↑ Ray Winninger (August 1995). Giantcraft. (TSR, Inc), p. 10. ISBN 0-7869-0163-2.
^^10^^ ↑ Ray Winninger (August 1995). Giantcraft. (TSR, Inc), p. 11. ISBN 0-7869-0163-2.
^^11^^ ↑ Brian R. James (September 2008). “Realmslore: Hall of the Frostmaiden”. In Chris Youngs ed. Dragon #367 (Wizards of the Coast), pp. 60
^^12^^ ↑ Rick Swan (1992). The Great Glacier. (TSR, Inc). ISBN 1-56076-324-8.
^^13^^ ↑ Ray Winninger (August 1995). Giantcraft. (TSR, Inc). ISBN 0-7869-0163-2.
^^14^^ ↑ Ed Greenwood, Sean K. Reynolds, Skip Williams, Rob Heinsoo (June 2001). Forgotten Realms Campaign Setting 3rd edition. (Wizards of the Coast). ISBN 0-7869-1836-5.
^^15^^ ↑ Eric L. Boyd, Erik Mona (May 2002). Faiths and Pantheons. (Wizards of the Coast). ISBN 0-7869-2759-3.
^^16^^ ↑ W. Baur, J. Jacobs, G. Strayton (September 2004). Frostburn. (Wizards of the Coast). ISBN 0-7869-2896-4.
"""
!! Further reading
* Eric L. Boyd, Erik Mona (May 2002). Faiths and Pantheons. (Wizards of the Coast), pp. 14–17. ISBN 0-7869-2759-3.
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
The Ulutiuns were a grouping of related races of humans who inhabited the far polar regions of [[Faerûn]].
''Description''
Ulutiuns had dark, light brown, or yellow skin, dark hair, and dark brown eyes. They were short — rarely standing taller than five feet (150 cm) — and tended to have flat facial features, with tiny noses. They had short and thick legs with stubby fingers and toes. This tended to make them slower and less dexterous than other humans, but this was compensated by greater fortitude and strength. They had especially wide teeth. Males usually weighed between 130 and 260 pounds (60–120 kg), and females were about 35 pounds (16 kg) lighter than that.
Ulutiun males did not grow facial hair, and men and women had more fat under their skin than other humans and extra blood vessels in their extremities. These adaptive variations granted them a special resistance to living in the frigid weather of the polar regions.
They wore thick clothing made from furs and hides.
Ulutiuns were an adaptable people and lived close to nature. They tended to be warm and friendly once one got to know them.
Ulutiuns were divided into four sub-groupings. The [[Ice Hunters]] lived in the west, in the regions of the the Cold Run, the Ice Peak, and the Sea of Moving Ice. The [[Angulutiuns|Angulutiun]], [[Iulutiuns|Iulutiun]], and [[Nakulutiuns|Nakulutiun]] resided in the Great Glacier.
''Language''
The Ice Hunters spoke [[Uluik]], and the Ulutiuns of the [[Great Glacier]] spoke [[Ulutiun]]. Both were closely related languages.
''Religion''
The [[Ice Hunters]] venerated various nature spirits and had a shamanistic form of religion. [[Iulutiuns|Iulutiun]] and [[Angulutiuns|Angulutiun]] did not have a religion, but the [[Nakulutiuns|Nakulutiun]] worshiped [[Ulutiu]].
''Combat''
Since metal was rare on glaciers, Ulutiun warriors had inferior weapons and armor compared to the peoples of the Cold Lands to the south, yet they were known for being ferocious in battle with a unparalleled ability to survive their arctic climates. They favored spears. If forced to fight, they battled to the death.
''History''
Ulutiuns were originally from the lands of [[Kara-Tur]] and migrated west to [[Faerûn]] over the ice over a thousand years before the [[Dalereckoning]].
!!A
"""
''ahsukk ''
Iulutiun dialect: a board composed of members from each village council to arbitrate in trade disputes during trade fairs
''aigiik ''
Iulutiun dialect: the relationship between spouses
''aituiskotuk ''
Angulutiun dialect: adults who had participated in only a single migration of caribou
''akukujik ''
the section of an //ukujik //that did not have meat pits
''akykulutik ''
Nakulutiun dialect: a punishment (//ykulutik//) where the accused was sealed in the cave of a natural predator
''anariak ''
a ritual where an //ariak //dressed a newborn baby
''anarkiirik ''
the second syllable of a baby's name, which came from the name of an honored friend or family member
''andlitiving ''
a meat-storage room
''ahtkoat ''
the messenger who invited people to //koatulit//
''aiskotuk ''
Angulutiun dialect: the group remaining after the migration of the //iskotuk//
''ariak ''
a friend of the family who dressed a baby in his or her first clothes
''artengak ''
a type of harpoon
''awakewquka ''
a type of celebration for honoring one's first seal-kill
"""
!! B
"""
''bikik ''
an ice sled with a square sail
''biknach ''
Nakulutiun dialect: a meat-storage structure
"""
!! C
"""
''ceenach ''
Nakulutiun dialect: a stone house
"""
!! D
"""
''dinjik''
a pit trap that looks like a snowhouse
"""
!! E
"""
''eaas''
Iulutiun dialect: the essence of life
''ekaa''
a barbed arrow
''ekotupa''
an arranged marriage
''equkoku''
a memorial feast or cemetery for the dead
''erngiik''
Iulutiun dialect: the relationship between a mother and her eldest daughter
''eyklak''
a large bow
"""
!! G
"""
''garnok''
a sling with an extended handle
''gazanga''
Iulutiun dialect: "little father"; the oldest male child
''giik''
Iulutiun dialect: the relationship between a father and his eldest son
"""
!! H
"""
''heteff''
a white-furred sled dog
''hiuchupuk''
a water sled
''hukek''
Angulutiun dialect: a digging spike
''huuk''
a "singdown"
''huykulutik''
Nakulutiun dialect: a punishment (//ykulutik//) where the accused was tied to a tree and shot with arrows
"""
!! I
"""
''igdluarn''
a snowhouse room for storing blubber and meat
''igdluling''
a long passage between snowhouse rooms
''ijukujik''
the section of an //ukujik //that had meat pits
''ikaap''
Angulutiun dialect: an ice sled made from caribou skins
''ikili''
Angulutiun dialect: a full migration of caribou
''ilupiquan''
the interior skin walls of a snowhouse
''iniagok''
Angulutiun dialect: morale officer
''Innugaakalikurit''
an arctic dwarf
''intang''
hoop for drying clothes
''inuksuk''
snow figures places in a V-shaped line for driving caribo
''ipipykulutik''
Nakulutiun dialect: a punishment (//ykulutik//) where the accused was suspended head-first inside a crevasse
''iquemelum''
a village council
''iskotuk''
Angulutiun dialect: a group of migrating humans and their caribou
''ituiskotuk''
Angulutiun dialect: aged or injured adults unable to participate in the migration of caribou
''iuak''
a machete
''iurit''
Nakulutiun dialect: assembly called by the village ruler
"""
!! J
"""
''jakerek''
single-passenger ice sled
''jegaung''
a gambling game testing one's aim
''jititip''
a special snowhouse for sled dogs or kupuk
''jokitarpo''
game to make the ugliest faces
''jukikewquka''
a feast honoring a child's first kill
''jyykach''
Nakulutiun dialect: a religious edict requiring the death of all non-believers
"""
!! K
"""
''kaituiskotuk''
Angulutiun dialect: persons who have not yet participated in the migration of caribou
''kaiurit''
Nakulutiun dialect: a yearly religious edict
''kaquling''
a snowhouse's outermost, open section
''kayak''
a kayak
''kazanga''
Iulutiun dialect: "little mother"; the oldest female child
''keri-keri''
a game of imitating gestures
''kiam''
a village council member
''kiirik''
the first syllable of a baby's name, which came from the name of a deceased friend or family member
''kilat''
a type of drum played by slapping it against the chest or thigh
''koatulit''
a custom of inviting folk from a nearby village to live in the host village as guests of honor
''kotupa''
a voluntary marriage
"""
!! L
"""
''lakerek''
a sled drawn by caribou
''liqukoku''
Iulutiun dialect: a ritual for honoring first kills
''lukitaqutu''
a juggling game
''lulik''
an individual room (dome) of a snowhouse
''luqu''
a trident
"""
!! M
"""
''mikka''
a lichen growing in Alpuk that tastes like mint
''minikitak''
Angulutiun dialect: a house made from earth and wood
''mukteff''
a golden-furred sled dog
"""
!! N
"""
''naulagak''
a type of harpoon
''nukiewquak''
a ritual for honoring one's first polar bear kill
"""
!! O
"""
''okteff''
a black-furred sled dog
''opoqukoku''
Iulutiun dialect: a ritual of properly disposing of animal skulls
"""
!! P
"""
''pilakerek''
Angulutiun dialect: a balancing pole used while riding a sled
''pimataung''
Angulutiun dialect: an aged leader of the //iskotuk//
''pokulu''
Nakulutiun dialect: a belief that one's life essence becomes a part of Ulutiu upon death
"""
!! Q
"""
''quaggi''
a communal feasting house
''quangirin''
a ventilation slit
''quidlirin''
a fireplace
''quipiqu''
thick sleeping blankets
''qukoku''
Iulutiun dialect: a philosophy about the unity of nature
"""
!! R
"""
''rewqugi''
a two-domed snowhouse filled with pits for burning blubber
''reykulutik''
Nakulutiun dialect: a punishment (//ykulutik//) where the accused was stoned to death in a pit
''rissik''
Angulutiun dialect: a portable tent
''ritiik''
a weapon used for hunting bear
"""
!! S
"""
''sangiik''
Iulutiun dialect: the relationship between a family and its //ukeu//
''sarissik''
Angulutiun dialect: the roof of a //rissik//
''sirdloang''
a closet for clothing
''skotuk''
Angulutiun dialect: inhabitants, a term which includes both people and caribou
''sukkiruchit''
a trade fair
"""
!! T
"""
''taatquoko''
Angulutiun dialect: a celebration at the start of each caribou migration
''tigugiik''
Iulutiun dialect: the relationship between a parent and his or her children
''tihukek''
Angulutiun dialect: a tool used for making tent poles
''tingaung''
a gambling game
''toqsung''
the main entrance to a snowhouse
''trukaa''
a blunt arrow
''tuiskotuk''
Angulutiun dialect: adults who have participated in more than one caribou migration
''tupa''
marriage
''turak''
dirty woman or wild woman, also, sorcereress
''turik''
dirty man or wild man, also, sorcerer
''turawakiakulutik''
the punishment for witchcraft by being branded by an ice vine
"""
!! U
"""
''uadling''
the outer dome of a snowhouse
''ugunach''
Nakulutiun dialect: a platform for praying
''uhkerek''
a large sled drawn by caribou
''ujju''
Angulutiun dialect: the preferred pasture grounds of a specific caribou herd
''ukeu''
a voluntary slave
''ukujik''
a dome where meat was cut
''ulirrissik''
Angulutiun dialect: a bowl with holes used to cover fires within tents
''umiak''
a large boat for cargo
''unungak''
a type of harpoon
''urit''
Nakulutiun dialect: village ruler
''uwa''
Iulutiun dialect: earrings worn by //kiam//
"""
!!V
"""
''vaakach''
Nakulutiun dialect: a religious edict mandating that a particular syllable is sacrilegious
''viit''
a makeshift tent
"""
!!W
"""
''wakiak''
Angulutiun dialect: a branding
''wijikak''
Iulutiun dialect: an honor murder
''wypokulu''
Nakulutiun dialect: //opoqukoku//
"""
!! Y
"""
yaaurit
Nakulutiun dialect: an //urit's// aides
''yakakilat''
a drum feast for honoring the killing of a white dragon or tirichik
''yijikak''
Iulutiun dialect: an murder sanctioned by the //iquemelum//
''ykulutik''
Nakulutiun dialect: any punishment for violating a yearly religious edict
''yupokulu''
Nakulutiun dialect: //equkoku//
"""
!! [[Uncivilized]]
Ulrik is from a culture still in the stone age. He's unused to using sophisticated tools and doesn't understand the basics of most civilized cultures. He suffers a -2 Penalty to any skill used in the context of the civilized lands. This includes cultural skills such as Appraise and Diplomacy, physical skills such Climbing buildings or Stealth in urban settings, etc.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Underbrush Decoy
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 swift action S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one non-creature plant of size Tiny, Small, or Medium
Duration: 1 round
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
You cause a plant to rustle noisily, distracting nearby creatures. You can attempt a Bluff check to create a distraction to hide, using your caster level + your Wisdom modifier in place of your total Bluff skill bonus and applying the result to all creatures within 30 feet. You count the target as distracted, as do any creatures that knew about your distraction in advance. Creatures might not be distracted if they detect you casting the spell or otherwise anticipate your subterfuge.
Source: Ultimate Intrigue
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Unlife Current
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (healing) [water]
1 standard action V, S, DF
Range: medium (100 ft. + 10 ft./level)
Area: current or portion of current up to 20 feet wide and 100 feet long
Duration: 1 round
Saving Throw: Will half Spell Resistance: yes
"""
This functions as life current except you infuse the current with negative energy, so it heals undead and harms living creatures.
Source: Aquatic Adventures
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Unshakable Chill
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
necromancy
1 standard action V, S, M
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 10 minutes/level; see text
Saving Throw: Fortitude negates (see text) Spell Resistance: yes
"""
The target is filled with an unshakable chill for the duration of the spell, and suffers from the effects of severe cold (Core Rulebook 442). Severe cold means if the initial saving throw fails, the target takes 1d6 points of nonlethal cold damage and must save every 10 minutes (using the DC of severe cold instead of this spell's DC) or take additional damage.
Source: Ultimate Magic
\define levelValue()
{{CharacterData##$(currentTiddler)$}}
\end
\define editLevel()
<$edit-text tiddler="CharacterData" index=$(currentTiddler)$ default="0" tag=input />
\end
! Update Data
<table class="borderless">
<$list filter="[tag[Level]sort[created]]" >
<tr><td>{{!!title}}:</td><td><<editLevel>></td></tr>
</$list>
</table>
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Updraft
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation) [air]
1 swift action V, S, M (a minature propeller or windmill)
Range: personal
Targets: you
Duration: instantaneous
Saving Throw: Spell Resistance:
"""
Updraft conjures forth rushing air that propels you upward. You gain 10 feet per level of altitude, and then gently float back down to the ground. At any point during your descent, you can move up to 5 feet laterally.
Source: Spell Compendium
You are skilled at activating magic items, even if you are not otherwise trained in their use.
!! Common Uses
!! Cause Mishap
You can intentionally cause a magic item to produce a mishap.
''Action'': Attempting to create a mishap is like activating an item blindly, and requires a standard action during which you try out magic words or other appropriate actions.
''Check'': You can cause a magic item to have an intentional magic mishap, as if you had attempted to activate it blindly and failed by 10 or more. The DC to produce an intentional mishap is 30. If you succeed, you have some control over the mishap. The item deals 2d6 points of damage to any one creature or object that the item could have targeted if activated normally. You can attempt to aim it, but if you select an invalid target, you take the damage instead. If you fail the check by 9 or less, you create a normal mishap you do not control. If you fail by 10 or more, nothing happens.
!! Read Spell/Activate Magic Item
You can use this skill to read a spell or to activate a magic item. Use Magic Device lets you use a magic item as if you had the spell ability or class features of another class, as if you were a different race, or as if you were of a different alignment.
You make a Use Magic Device check each time you activate a device such as a wand. If you are using the check to emulate an alignment or some other quality in an ongoing manner, you need to make the relevant Use Magic Device check once per hour.
You must consciously choose which requirement to emulate. That is, you must know what you are trying to emulate when you make a Use Magic Device check for that purpose. The DCs for various tasks involving Use Magic Device checks are summarized on the table below.
''Activate Blindly'': Some magic items are activated by special words, thoughts, or actions. You can activate such an item as if you were using the activation word, thought, or action, even when you’re not and even if you don’t know it. You do have to perform some equivalent activity in order to make the check. That is, you must speak, wave the item around, or otherwise attempt to get it to activate. You get a +2 bonus on your Use Magic Device check if you’ve activated the item in question at least once before. If you fail by 9 or less, you can’t activate the device. If you fail by 10 or more, you suffer a mishap. A mishap means that magical energy gets released but doesn’t do what you wanted it to do. The default mishaps are that the item affects the wrong target or that uncontrolled magical energy is released, dealing 2d6 points of damage to you. This mishap is in addition to the chance for a mishap that you normally risk when you cast a spell from a scroll that you could not otherwise cast yourself.
''Decipher a Written Spell'': This usage works just like deciphering a written spell with the Spellcraft skill, except that the DC is 5 points higher. Deciphering a written spell requires 1 minute of concentration.
''Emulate an Ability Score'': To cast a spell from a scroll, you need a high score in the appropriate ability (Intelligence for wizard spells, Wisdom for divine spells, or Charisma for sorcerer or bard spells). Your effective ability score (appropriate to the class you’re emulating when you try to cast the spell from the scroll) is your Use Magic Device check result minus 15. If you already have a high enough score in the appropriate ability, you don’t need to make this check.
|!Task | !Use Magic Device DC |
|Activate blindly | 25 |
|Decipher a written spell | 25 + spell level |
|Use a scroll | 20 + caster level |
|Use a wand | 20 |
|Emulate a class feature | 20 |
|Emulate an ability score | See text |
|Emulate a race | 25 |
|Emulate an alignment | 30 |
''Emulate an Alignment'': Some magic items have positive or negative effects based on the user’s alignment. Use Magic Device lets you use these items as if you were of an alignment of your choice. You can emulate only one alignment at a time.
''Emulate a Class Feature'': Sometimes you need to use a class feature to activate a magic item. In this case, your effective level in the emulated class equals your Use Magic Device check result minus 20. This skill does not let you actually use the class feature of another class. It just lets you activate items as if you had that class feature. If the class whose feature you are emulating has an alignment requirement, you must meet it, either honestly or by emulating an appropriate alignment with a separate Use Magic Device check (see above).
''Emulate a Race'': Some magic items work only for members of certain races, or work better for members of those races. You can use such an item as if you were a member of a race of your choice. You can emulate only one race at a time.
''Use a Scroll'': Normally, to cast a spell from a scroll, you must have the scroll’s spell on your class spell list. Use Magic Device allows you to use a scroll as if you had a particular spell on your class spell list. The DC is equal to 20 + the caster level of the spell you are trying to cast from the scroll. In addition, casting a spell from a scroll requires a minimum score (10 + spell level) in the appropriate ability. If you don’t have a sufficient score in that ability, you must emulate the ability score with a separate Use Magic Device check. This use of the skill also applies to other spell completion magic items. Note: More rules for activating scrolls here.
''Use a Wand, Staff, or Other Spell Trigger Item'': Normally, to use a wand, you must have the wand’s spell on your class spell list. This use of the skill allows you to use a wand as if you had a particular spell on your class spell list. Failing the roll does not expend a charge.
!! Restrictions
You cannot take 10 with this skill.
You can’t aid another on Use Magic Device checks. Only the user of the item may attempt such a check.
!! Action
None. The Use Magic Device check is made as part of the action (if any) required to activate the magic item.
''Retry?''
Yes, but if you ever roll a natural 1 while attempting to activate an item and you fail, then you can’t try to activate that item again for 24 hours.
!! Modifiers
''Feats ''
If you have the Magical Aptitude feat, you gain a +2 bonus on Use Magic Device checks. If you have 10 or more ranks in this skill, the bonus increases to +4.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Vengeful Comets
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S
Range: long (400 ft. + 40 ft./level)
Effect: 1 comet per 4 levels
Duration: 1 round/level or until completely discharged (see below)
Saving Throw: none Spell Resistance: yes
"""
This spell causes a number of miniature comets (up to one per four caster levels) to orbit in the air above your head. Bits of snow and cold wind drift down from the orbiting comets, granting you a circumstance bonus equal to the number of comets on all saving throws against fire effects. The actual use for the comets, though, is to make vengeful strikes against foes who dare to target you with offensive spells. As an immediate action whenever you are affected by a spell cast by another creature, you can fire one of your vengeful comets as a bolt of icy retribution (provided the source of the offensive spell is within range of your vengeful comet, of course). The comet requires a ranged touch attack to hit. If it hits, a comet deals 1d6 points of bludgeoning damage and 3d6 points of cold damage to the target, plus an additional amount of cold damage equal to the level of the spell you are retaliating against. If the spell you're retaliating against had the fire descriptor, you may opt to fire two comets instead of one.
Source: Inner Sea Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Venomous Bite
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, M (a vial of injury poison worth at least 75 gp), DF
Range: touch
Targets: creature touched
Duration: 1 round/level (D)
Saving Throw: Fortitude negates (harmless) Spell Resistance: yes (harmless)
"""
When you touch the poison vial against the target creature and cast this spell, the vial drains and the target's teeth become envenomed with the same poison. The creature gains the use of 1 dose of the poison for every 5 caster levels you possess (maximum 4 doses). The creature gains immunity to that poison while this spell is in effect. The poison retains its normal properties, and this spell does not alter the DC to resist or cure the poison. Each successful bite attack counts as an expended dose. When all the poison is used, the spell ends. If the target creature doesn't have a bite attack, or if the target's bite attack is already poisonous, the spell has no effect. If the target has multiple heads, the spell affects only one bite attack. When this spell ends, any unused poison is harmlessly expelled from the target's mouth and cannot be used again.
Source: Dirty Tactics Toolbox
This type includes insects, arachnids, other arthropods, worms, and similar invertebrates.
Vermin have the following features.
* d8 Hit Die.
* Base attack bonus equal to 3/4 total Hit Dice (medium progression).
* Good Fortitude saves.
* Skill points equal to 2 + Int modifier (minimum 1) per Hit Die. Most vermin, however, are mindless and gain no skill points or feats. Vermin have no class skills.
Traits: Vermin possess the following traits (unless otherwise noted in a creature’s entry).
* Mindless: No Intelligence score, and immunity to all [[mind-affecting|Mind-Affecting]] effects (charms, compulsions, morale effects, patterns, and phantasms). Mindless creatures have no feats or skills. A vermin-like creature with an Intelligence score is usually either an animal or a magical beast, depending on its other abilities.
* [[Darkvision]] 60 feet.
* Proficient with its [[natural weapons|Natural Attacks]] only.
* Proficient with no armor.
* Vermin breathe, eat, and sleep.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Vermin Shape I
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation (polymorph)
1 standard action V, S, M (a piece of the creature whose form you plan to assume)
Range: personal
Targets: you
Duration: 1 minute/level
Saving Throw: Spell Resistance:
"""
When you cast this spell, you assume the form of any Small or Medium creature of the vermin type. If the form you assume has any of the following abilities, you gain the listed ability: climb 30 feet, fly 30 feet (average maneuverability), swim 30 feet, darkvision 60 feet, low-light vision, scent, and lunge. You don't gain full immunity to mind-affecting effects, but you do gain a +2 resistance bonus on all saving throws against such effects. Small vermin: If you take the form of a Small vermin, you gain a +2 size bonus to your Dexterity and a +2 natural armor bonus. Medium vermin: If you take the form of a Medium vermin, you gain a +2 size bonus to your Strength and a +3 natural armor bonus.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Vigor
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
conjuration (healing)
1 standard action V, S
Range: touch
Targets: living creature touched
Duration: 10 rounds + 1 round/level (max 25 rounds)
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
This spell functions like lesser vigor, except as noted here and that it grants fast healing 2. The subject gains fast healing 2, enabling it to heal 2 hit points per round until the spell ends and automatically becoming stabilized if it begins dying from hit point loss during that time. Vigor does not restore hit points lost from starvation, thirst, or suffocation, nor does it allow a creature to regrow or attach lost body parts. The effects of multiple vigor spells do not stack; only the highest-level effect applies.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Vine Strike
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation)
1 standard action V, S
Range: personal
Targets: you
Duration: 1 minute/level (D)
Saving Throw: Reflex negates (see text) Spell Resistance: yes
"""
Bristles burst from your body, lodging in your opponent and blossoming into entangling vines as you pummel your target. While this spell is in effect, one of your natural attacks or unarmed strikes deals an additional 1d6 points of damage, and each creature hit with that natural weapon or unarmed strike must succeed at a Reflex save or be entangled for the duration of the spell; on a successful Reflex save, the creature is immune to the entangled effect for 1 round. A creature entangled by this spell can spend a standard action to remove the vines, but can be entangled again by further unarmed strikes.
Source: Ultimate Wilderness
! Viper
|N Tiny animal|
|''Init'' +1 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +9|
|!Defense |
|''AC'' 16, touch 15, flat-footed 13 |
|''hp'' 3 (1d8-1) |
|''Fort'' +1, ''Ref'' +5, ''Will'' +1 |
|!Offense |
|''Speed'' 20 ft., climb 20 ft., swim 20 ft. |
|''Melee'' bite +5 (1d2-2 plus poison) |
|''Space'' 2-1/2, ''Reach'' 0 |
|''Special Attacks'' [[Poison]] |
|!Statistics |
|''Str'' 4, ''Dex'' 17, ''Con'' 8, ''Int'' 1, ''Wis'' 13, ''Cha'' 2 |
|''Base Attack'' +0, ''CMB'' +1, ''CMD'' 8 (can't be [[Tripped|Trip]]) |
|''Feats'' Weapon Finesse |
|''Skills'' Climb +11, Perception +9, Stealth +15, Swim +11 |
|''Racial Modifiers'' +4 Perception, +4 Stealth |
|!Special Abilities |
|!''Poison'' (Ex) |
|Bite—injury; save Fort DC 9; frequency 1/round for 6 rounds; effect 1d2 Con damage; cure 1 save. |
Vipers are not particularly aggressive snakes, but their poisonous bite can be deadly.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Virtue
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 0
transmutation
1 standard action V, S, DF
Range: touch
Targets: creature touched
Duration: 1 min.
Saving Throw: none Spell Resistance: yes (harmless)
"""
With a touch, you infuse a creature with a tiny surge of life, granting the subject 1 temporary hit point.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Virulent Miasma
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
necromancy
1 standard action V, S, M (a dried scab from a diseased creature)
Range: medium (100 ft. + 10 ft./level)
Effect: cloud spreads in 20-ft. radius, 20 ft. high
Duration: 1 round/level
Saving Throw: Fortitude negates (see text) Spell Resistance: see text
"""
Virulent miasma creates fog like fog cloud, except that the vapors carry the taint of disease. Living creatures take a -4 penalty on saving throws against disease effects as long as they remain within the cloud and for 1d4+1 rounds after leaving. This effect of the spell allows a Fortitude save to negate it, and it is subject to spell resistance. A creature that succeeds at its saving throw against the fog (or ignores the fog due to spell resistance) is not affected and need not make further saves even if it remains in the fog.
Source: Villain Codex
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Visualization Of The Body
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 hour V, M (soothing incense worth 200 gp)
Range: personal
Targets: you
Duration: 24 hours or until discharged
Saving Throw: Spell Resistance:
"""
You focus your mind on one aspect of your body, aligning the energies within your body to enhance that element. Choose a single physical ability score (Constitution, Dexterity, or Strength). If you choose Strength or Dexterity, you gain a +5 bonus on skill checks associated with that ability score. If you choose Constitution, your maximum and current hit points increase by an amount equal to your Hit Dice. At any time during the spell's duration, you can expend the spell's remaining duration as an immediate action in order to gain a one-time physical enhancement associated with the ability score you chose to visualize, as detailed below. After you do so, the spell ends. Constitution: You immediately regain a number of hit points equal to 1d8 + your total character level. Dexterity: You gain a +4 dodge bonus to your Armor Class for 3 rounds. Strength: You gain a +6 bonus on all Strength checks to break objects and on checks to escape or establish grapples for 1 minute.
Source: Divine Anthology
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Ward Of The Season
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
abjuration
1 standard action V, S
Range: touch
Targets: one creature
Duration: 1 hour/level
Saving Throw: Will negates (harmless) Spell Resistance: no
"""
This spell harnesses the power of the seasons to protect the target and grant a number of bonuses. This spell has one of four different effects. The caster of the spell can select any one of the following four effects, but can change the effect as a standard action that reduces the total remaining duration by 1 hour. Spring: The target is wrapped in light vines, culminating in a crown of bright, beautiful flowers. While the spell remains in effect, the target is immune to bleed effects and regains 1 hit point per round whenever below 0 hit points, as long as the target is still alive. This stabilizes the target. For each hit point restored in this way, the spell's total remaining duration is reduced by 1 hour. Summer: The target is surrounded by tiny motes of light. While the spell remains in effect, the target's base speed increases 10 feet. The target may instead increase its base speed by 30 feet for 1 round by reducing the spell's total remaining duration by 1 hour. Fall: A cloak of autumn leaves appears on the target. While the spell remains in effect, the target gains a +2 morale bonus on Fortitude saves. The target can decide to roll twice on any saving throw against disease or poison and take the higher result by reducing the spell's total remaining duration by 1 hour. Winter: A flutter of snow and crisp air surrounds the target. While this spell remains in effect, the target automatically succeeds at Acrobatics skill checks made to avoid falling while moving across slick or narrow surfaces. The target can move freely through difficult terrain for 1 round by reducing the spell's remaining duration by 1 hour. Difficult terrain created by magic affects the target normally.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Warp Wood
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: 1 Small wooden object/level, all within a 20-ft. radius
Duration: instantaneous
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
You cause wood to bend and warp, permanently destroying its straightness, form, and strength. A warped door springs open (or becomes stuck, requiring a Strength check to open, at your option). A boat or ship springs a leak. Warped ranged weapons are useless. A warped melee weapon causes a -4 penalty on attack rolls. You may warp one Small or smaller object or its equivalent per caster level. A Medium object counts as two Small objects, a Large object as four, a Huge object as eight, a Gargantuan object as 16, and a Colossal object as 32. Alternatively, you can unwarp wood (effectively warping it back to normal) with this spell. Make whole, on the other hand, does no good in repairing a warped item. You can combine multiple consecutive warp wood spells to warp (or unwarp) an object that is too large for you to warp with a single spell. Until the object is completely warped, it suffers no ill effects.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Wartrain Mount
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
enchantment (compulsion) [mind-affecting]
1 minute V, S, M (a swatch of black cloth)
Range: close (25 ft. + 5 ft./2 levels)
Targets: one indifferent or friendly animal
Duration: 1 hour/level
Saving Throw: none Spell Resistance: yes
"""
You instill the target animal with the combat training general purpose (see the Handle Animal skill, Core Rulebook 98). This supersedes the animal's previous trained purpose and any tricks it knows. When the spell ends, it reverts to its previous trained purpose and known tricks.
Source: Ultimate Magic
Watch (DC 15): The animal can be commanded to keep watch over a particular area, such as a campsite, and to raise an alarm if it notices any dangerous or sizable creature entering the area.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Water Breathing
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
transmutation
1 standard action V, S, M/DF (short reed or piece of straw)
Range: touch
Targets: living creatures touched
Duration: 2 hours/level; see text
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The transmuted creatures can breathe water freely. Divide the duration evenly among all the creatures you touch. The spell does not make creatures unable to breathe air.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Wave Shield
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration
1 immediate action V
Range: personal
Targets: you
Duration: 1 round or until discharged
Saving Throw: Spell Resistance:
"""
You create a rushing torrent of water in the rough outline of a shield. The water protects you from one physical or fire attack, granting you DR/- and fire resistance equal to half your caster level (minimum 1) on that attack. Once the spell has reduced the damage of one attack against you, it is discharged.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Weaken Powder
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 standard action V, S, M/DF (an empty paper cartridge)
Range: close (25 ft. + 5 ft./2 levels)
Targets: 1 loaded firearm
Duration: instantaneous
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
Ammunition in the target firearm generates less of an explosive charge when fired. With such ammunition, the firearm's range increment is halved and the firer takes a -2 penalty on damage rolls. If aware of this spell's effect prior to firing the altered ammunition (a DC 16 Spellcraft check to identify the spell being cast or similar effect), the firearm's user can spend a standard action to clear the altered ammunition from the firearm. Doing so destroys that ammunition.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Web Shelter
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation)
1 minute V, S, DF
Range: close (25 ft. + 5 ft./two levels)
Effect: 5 ft.-10 ft. diameter web sphere or 5 ft.-20 ft. hemisphere
Duration: 1 hour/level (D)
Saving Throw: none Spell Resistance: no
"""
You create a shelter of slightly sticky webbing. The shelter has a hinged door large enough to accommodate a Medium creature. The opaque walls of the shelter measure 1 inch thick and provide total cover to anyone within it. Only Fine creatures with negligible Strength can be caught in the webbing (including swarms); all other creatures can pull themselves free without making a Strength check or taking an action. The webbing is sticky enough to hold twigs, leaves, dirt, and other light items, allowing you to conceal the shelter. The shelter is watertight and insulated when the door is closed. Its surface has a hardness of 0 and 2 hit points for every 5-foot square of web surface area. It takes normal damage from fire and burns as easily as wood. When the spell ends, the webbing decays rapidly and disappears.
Source: Ultimate Magic
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Whip Of Spiders
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (summoning)
1 standard action V, S, M/DF (a square of red cloth)
Range: 0 ft.
Effect: whiplike swarm
Duration: 1 round/level (D (see text)
Saving Throw: none Spell Resistance: yes
"""
You summon hundreds of Diminutive spiders, which cling together in the form of a whip made for a creature of your size. You can wield this object as if it were an actual whip, except you make a melee touch attack with it instead of a regular attack. Any creature you strike with the whip takes swarm damage as if it were attacked by a spider swarm (1d6 points of damage plus poison and distraction, Bestiary 258). The swarm whip is able to damage creatures with armor or natural armor, even if a normal whip could not. It cannot be used to make bull rush, grapple, or trip attacks, and (unlike a swarm) is subject to a miss chance for concealment and cover. The whip is immune to all weapon damage, is never staggered or reduced to a dying state by damage, and is immune to any spell or effect that targets a specific number of creatures (including single-target spells such as disintegrate). The whip takes half again as much damage from spells or effects that affect an area, but since it is considered part of your gear, it takes damage only if you fail a saving throw on a 1 or if it is specifically targeted by an opponent. The whip does not have a swarm's susceptibility to high winds. As a standard action, you can transform the whip into a spider swarm (all squares of the swarm must be within 15 feet of you); thereafter it functions as summon swarm. The spider swarm has 3 hit points and persists in that form for 2 rounds or until the end of this spell's duration, whichever comes first.
Source: Advanced Class Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Whispering Lore
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
divination
1 full-round action V, S, M/DF (an owl's beak)
Range: personal
Targets: you
Duration: 10 minutes/level (D)
Saving Throw: Spell Resistance:
"""
Upon casting this spell, you are able to gain knowledge from the land itself. As you walk through the terrain, it whisper information in a language you understand, though the whispering is so rambling it is hard to distinguish useful information. This whispering grants you a +4 insight bonus on a single Knowledge skill type appropriate to the type of terrain you are in. If you are within a cold, desert, forest, jungle, mountain, plains, swamp, or water environment, you gain the bonus on Knowledge (nature) checks. If you are within an underground environment, you gain the bonus on Knowledge (dungeoneering) checks. If you are within an urban environment, you gain the bonus on Knowledge (local) checks. If you are on a plane other than the Material Plane, you gain the bonus on Knowledge (planes) checks. If you enter a new terrain, you lose the previous terrain's skill bonus and gain the new bonus.
Source: Advanced Race Guide
!! [[Wild Empathy]]
A druid can improve the attitude of an animal. This ability functions just like a Diplomacy check made to improve the attitude of a person. The druid rolls 1d20 and adds her druid level and her Charisma modifier to determine the wild empathy check result.
The typical domestic animal has a starting attitude of indifferent, while wild animals are usually unfriendly.
To use wild empathy, the druid and the animal must be able to study each other, which means that they must be within 30 feet of one another under normal conditions. Generally, influencing an animal in this way takes 1 minute but, as with influencing people, it might take more or less time.
A druid can also use this ability to influence a magical beast with an Intelligence score of 1 or 2, but she takes a –4 penalty on the check.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Wild Instinct
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
divination
standard action V, S, DF
Range: personal
Targets: you
Duration: 8 hours
Saving Throw: Spell Resistance:
"""
This spell sharpens your senses, allowing you to perceive threats you would otherwise miss. You become aware of sounds and smells you would normally overlook, and even retain the ability to detect threats when soundly asleep. For the duration of the spell, you gain a +5 bonus on Perception checks to act in a surprise round. Additionally, you don't take a penalty on Perception checks while sleeping, and can choose to wake if you notice a threat while asleep.
Source: Heroes Of The Wild
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Wilderness Soldiers
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S
Range: 30 ft.
Area: 30-ft.-radius emanation, centered on you
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
You call on the plants nearby to aid you in combat. This spell is ineffective if no plants you can direct are within the area. You can spend a swift action and/or a standard action on each of your turns to direct one of the following attacks. The attack bonus or CMB for these attacks equals your base attack bonus + your Wisdom modifier. You grant a +1 bonus per three caster levels (maximum +5) on damage rolls due to this spell. Your wilderness soldiers never provoke attacks of opportunity, and they do not count as allies for flanking or other purposes. Tree: A tree makes a melee attack with a 10-foot reach from its trunk. A hit deals an amount of damage equal to 1d8 points + your Wisdom modifier. The tree can instead attempt a bull rush, drag, or reposition combat maneuver with the same reach, but the tree cannot move itself. Undergrowth or Hedgerow: Acting as a Medium creature, one square of undergrowth or hedgerow attempts a grapple combat maneuver against an opponent within or adjacent to that square. Heavy undergrowth gains a +2 bonus to its CMD. Undergrowth cannot move the grapple or pin a foe, but it can deal an amount of damage equal to 1d4 points + your Wisdom modifier by making a successful grapple check against a foe it is grappling. The undergrowth's CMD is 5 + its CMB. If you fail to direct the undergrowth to maintain the grapple, it releases its opponent.
Source: Ultimate Combat
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Wind Wall
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 3
evocation
1 standard action V, S, M/DF (a tiny fan and an exotic feather)
Range: medium (100 ft. + 10 ft./level)
Effect: wall up to 10 ft./level long and 5 ft./level high (S)
Duration: 1 round/level
Saving Throw: none; see text Spell Resistance: yes
"""
An invisible vertical curtain of wind appears. It is 2 feet thick and of considerable strength. It is a roaring blast sufficient to blow away any bird smaller than an eagle, or tear papers and similar materials from unsuspecting hands. (A Reflex save allows a creature to maintain its grasp on an object.) Tiny and Small flying creatures cannot pass through the barrier. Loose materials and cloth garments fly upward when caught in a wind wall. Arrows and bolts are deflected upward and miss, while any other normal ranged weapon passing through the wall has a 30% miss chance. (A giant-thrown boulder, a siege engine projectile, and other massive ranged weapons are not affected.) Gases, most gaseous breath weapons, and creatures in gaseous form cannot pass through the wall (although it is no barrier to incorporeal creatures). While the wall must be vertical, you can shape it in any continuous path along the ground that you like. It is possible to create cylindrical or square wind walls to enclose specific points.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Windy Escape
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
transmutation
1 immediate action V, S
Range: personal
Targets: you
Duration: instantaneous
Saving Throw: Spell Resistance:
"""
You respond to an attack by briefly becoming vaporous and insubstantial, allowing the attack to pass harmlessly through you. You gain DR 10/magic against this attack and are immune to any poison, sneak attacks, or critical hit effect from that attack. You cannot use windy escape against an attack of opportunity you provoked by casting a spell, using a spell-like ability, or using any other magical ability that provokes an attack of opportunity when used.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Winter Feathers
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
abjuration
1 standard action V, S
Range: touch
Targets: feathered creature touched
Duration: 24 hours
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
The target's feathers thicken and fluff up to ward against winter's chill. The target suffers no harm from being in a cold environment, and can exist comfortably in conditions as low as -50 degrees Fahrenheit without having to make Fortitude saves. The creature's equipment is likewise protected. This spell doesn't provide any protection from cold damage, nor does it protect against other environmental hazards associated with cold weather (such as slipping on ice, blindness from snow, and so on). When you cast this spell, you may have the target's feathers turn white for the duration, granting it a +4 circumstance bonus on Stealth checks to hide in ice and snow.
Source: Advanced Race Guide
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Winter Grasp
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [cold, water]
1 standard action V, S, M/DF (ground glass)
Range: medium (100 ft. + 10 ft./level)
Area: 20-ft.-radius spread
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
Ice encrusts the ground, radiating supernatural cold and making it hard for creatures to maintain their balance. This icy ground is treated as normal ice, forcing creatures to spend 2 squares of movement to enter an icy square and increasing the DC of Acrobatics checks in the area by 5. A creature that begins its turn in the affected area takes 1d6 points of cold damage and takes a -2 penalty on saving throws against spells with the cold descriptor for 1 round.
Source: Ultimate Wilderness
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Winter's Embrace
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
evocation
1 standard action V, S
Range: close (25 ft. + 5 ft./2 level)
Targets: one creature
Duration: 1 round/level
Saving Throw: Fortitude negates Spell Resistance: yes
"""
A target that fails its save takes 1d8 points of cold damage per round at the beginning of your turn. Each round, the subject can make a new Fortitude saving throw to avoid taking damage that round. The second time a subject takes damage from a single casting of winter's embrace, it becomes fatigued. The fourth time it takes damage from the same spell, it becomes exhausted.
Source: Spell Compendium
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Winter's Grasp
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration (creation) [cold]
1 standard action V, S, M/DF (ground glass)
Range: medium (100 ft. + 10 ft./level)
Area: 20-ft.-radius spread
Duration: 1 round/level
Saving Throw: none Spell Resistance: no
"""
Ice encrusts the ground, radiating supernatural cold and making it difficult for creatures to maintain their balance. This icy ground is treated as normal ice, forcing creatures to spend 2 squares of movement to enter an icy square and increasing the DC of Acrobatics checks attempted in the area by 5. A creature that begins its turn in the affected area takes 1d6 points of cold damage, and takes a -2 penalty on saving throws against all spells with the cold descriptor for 1 round.
Source: People Of The North
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! With The Wind
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
abjuration
1 standard action V, S
Range: close (25 ft. + 5 ft./2 levels)
Targets: one creature
Duration: 1 minute/level
Saving Throw: Will negates (harmless) Spell Resistance: yes (harmless)
"""
You create eddies in the air around the subject that protect it from being checked or blown away. The target can't be moved by winds of less than windstorm force unless it wishes to be.
Source: Ultimate Wilderness
! Wolf
|N Medium animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +8|
|!Defense |
|''AC'' 14, touch 12, flat-footed 12 |
|''hp'' 13 (2d8+4) |
|''Fort'' +5, ''Ref'' +5, ''Will'' +1 |
|!Offense |
|''Speed'' 50 ft. |
|''Melee'' bite +2 (1d6+1 plus trip) |
|!Statistics |
|''Str'' 13, ''Dex'' 15, ''Con'' 15, ''Int'' 2, ''Wis'' 12, ''Cha'' 6 |
|''Base Attack'' +1, ''CMB'' +2 , ''CMD'' 14 (18 vs. [[Trip]]) |
|''Feats'' Skill Focus (Perception) |
|''Skills'' Perception +8, Stealth +6, Survival +1 (+5 scent tracking) |
|''Racial Modifiers'' +4 Survival when tracking by scent |
|!Special Abilities |
Wandering alone or in packs, wolves sit at the top of the food chain. Ferociously territorial and exceptionally wide-ranging in their hunting, wolf packs cover broad areas. A wolf’s wide paws contain slight webbing between the toes that assists in moving over snow, and its fur is a thick, water-resistant coat ranging in color from gray to brown and even black in some species. Its paws contain scent glands that mark the ground as it travels, assisting in navigation as well as broadcasting its whereabouts to fellow pack members. Generally, a wolf stands from 2-1/2 to 3 feet tall at the shoulder and weighs between 45 and 150 pounds, with females being slightly smaller.
! Wolverine
|N Medium animal |
|''Init'' +2 ''Senses'' [[Low-Light Vision]], [[Scent]] ''Perception'' +10|
|!Defense |
|''AC'' 14, touch 12, flat-footed 12 |
|''hp'' 22 (3d8+9) |
|''Fort'' +5, ''Ref'' +5, ''Will'' +2 |
|!Offense |
|''Speed'' 30 ft., burrow 10 ft., climb 10 ft. |
|''Melee'' 2 claws +4 (1d6+2), bite +4 (1d4+2) |
|''Special Attacks'' Rage |
|!Statistics |
|''Str'' 15, ''Dex'' 15, ''Con'' 15, ''Int'' 2, ''Wis'' 12, ''Cha'' 10 |
|''Base Attack'' +2, ''CMB'' +4 , ''CMD'' 16 (20 vs. [[Trip]]) |
|''Feats'' Skill Focus (Perception), Toughness |
|''Skills'' Climb +10, Perception +10 |
|!Special Abilities |
|!''Rage'' (Ex) |
|A wolverine that takes damage in combat flies into a rage on its next turn, clawing and biting madly until either it or its opponent is dead. It gains +4 to Strength, +4 to Constitution, and –2 to AC. The creature cannot end its rage voluntarily. |
Wolverines are territorial, especially when it comes to food, and have been known to defend their kills against much larger predators, such as black bears. They are fearsome opponents, launching into a frenzy when wounded. They tend to give off a very strong, unpleasant musk smell when angry.
Armed with powerful jaws, strong legs, and a thick hide, wolverines are remarkably strong for their size. They are reckless in battle and throw themselves at their foes, clawing and biting furious.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Wood Shape
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
transmutation
1 standard action V, S, DF
Range: touch
Targets: one touched piece of wood no larger than 10 cu. ft. + 1 cu. ft./level
Duration: instantaneous
Saving Throw: Will negates (object) Spell Resistance: yes (object)
"""
Wood shape enables you to form one existing piece of wood into any shape that suits your purpose. While it is possible to make crude coffers, doors, and so forth, fine detail isn't possible. There is a 30% chance that any shape that includes moving parts simply doesn't work.
Source: PFRPG Core
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Wood Wose
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 1
conjuration (creation)
1 standard action V, S, DF
Range: close (25 ft. + 5 ft./2 levels)
Effect: one nature servant
Duration: 1 hour/level
Saving Throw: none Spell Resistance: no
"""
A wood wose is a translucent green nature spirit that you can command to perform simple natural tasks. It can build a campfire, gather herbs, feed an animal companion, catch a fish, or perform any other simple task that doesn't involve knowledge of technology. It cannot, for example, open a latched chest, since it doesn't know how a latch works. A wood wose can perform only one activity at a time, but it repeats the same activity if told to do so. Thus, if you commanded it to gather leaves, it would continue to do so while you turned your attention elsewhere, as long as you remained within range. A wood wose has an effective Strength of 2, so it can lift 20 pounds or drag 100 pounds. It can trigger traps, but the 20 pounds of force it can exert is not enough to activate most pressure plates. It has a land speed of 15 feet and a fly speed of 15 feet (perfect). A wood wose cannot attack in any way; it is never allowed an attack roll or a saving throw. It cannot be killed, but it dissipates if it takes 6 points of damage from area attacks. If you attempt to send the wose beyond the spell's range (measured from your current position), it ceases to exist.
Source: Spell Compendium
Work (DC 15) The animal pulls or pushes a medium or heavy load.
\define loadButton( LDSpellName )
<$macrocall $name="loadDruidSpellButton" LDSpellName=<<__LDSpellName__>> />
\end
! Zone of Glacial Cold
<<loadButton>> <$button><$action-setfield $tiddler={{!!title}} prepared=0 />Unload Spell</$button>
"""
Spell Level 2
conjuration
1 standard action V, S, M (a snowball)
Range: medium (100 ft. + 10 ft./level)
Area: 20-ft.-radius emanation
Duration: 1 round/level
Saving Throw: Fortitude half Spell Resistance: no
"""
You create a zone of icy cold within the spell's area, dealing 1d6 points of cold damage per round.
Source: Frostburn